function assoc_unique($arr, $key) {
$tmp_arr = array();
foreach($arr as $k => $v) {
if(in_array($v[$key], $tmp_arr)) {
unset($arr[$k]);
} else {
$tmp_arr[] = $v[$key];
}
}
sort($arr);
return $arr;
}
$aa = array(
array('id' => 123, 'name' => '张三'),
array('id' => 123, 'name' => '李四'),
array('id' => 124, 'name' => '王五'),
array('id' => 125, 'name' => '赵六'),
array('id' => 126, 'name' => '赵六')
);
$key = 'name';
assoc_unique(&$aa, $key);
print_r($aa);
>
这是数组去重的代码 不知道你要的是什么意思
<php
function quickSort($array)
{
if(count($array)<=1) return $array;
$mid = array_shift($array); //问题行,取得首元素后并从数组中删掉首元素
$leftArray = array();
$rightArray = array();
foreach($array as $v){
if($v > $mid)
$rightArray[] = $v;
else
$leftArray[] = $v;
}
$leftArray = quickSort($leftArray);
$leftArray[] = $mid;
$rightArray = quickSort($rightArray);
return array_merge($leftArray,$rightArray);
}
echo '<pre>';
print_r(quickSort(array(44,5,2,32,43)));Array
(
[0] => 2
[1] => 5
[2] => 32
[3] => 43
[4] => 44
)
大毛病就一个:输入数组array在for循环时没有拿掉首元素mid,导致首元素反复被在leftarray中复制导致死循环。改后即能凑合使用。
小毛病不少:比如用复制传递多个数组导致速度低、内存占用大。可以修改为只用一个数组,传递索引边界位置。
数组分两种,一种是数字索引,比如$arr[0],表示取$arr的第一个元素值;还有一种是关联索引数组,这时候的数组组织形式是:$arr = array('title'=>'书名:雪山飞狐‘),那么此时取“书名:雪山飞狐"时,就用$arr['title']。这是php的语法要求。
以上就是关于php 判断两个数组中第一个元素如果相同全部的内容,包括:php 判断两个数组中第一个元素如果相同、php快速排序竟然爆出内存不足,代码哪里出问题了呢、php 变量后['']是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)