php 判断两个数组中第一个元素如果相同

php 判断两个数组中第一个元素如果相同,第1张

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 变量后['']是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9626505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存