php 二维数组值去重~

php 二维数组值去重~,第1张

$a =

array(

array(a,b,c),

array(b,d,e),

array(a,e,f)

)

print_r(array(array_diff($a[0],$a[1],$a[2]),array_diff($a[1],$a[2]),$a[2]));

输出来的就是你要的答案

$newList = array();

foreach ($list as $v) {  // $list 是你以前的数组

    if (!isset($newList[$v['id']])) {  // 如果新列表中还没有相应的id

        $person = array('id'=> $v['id'], 'name'=>array($v['name'])), 'price'=>array($v['price'])));

        $newList[$v['id']] = $person;

        unset($person);

    } else {  // 如果已经存过,就只在该组下进行添加

        $newList[$v['id']]['name'][] = $v['name'];

        $newList[$v['id']]['price'][] = $v['price'];

    }

}

$newList = array_values($newList);  // 去掉索引

大概这么个意思,你试试,有什么问题我再改

<php

//假设这个数组为 $arr ,建立一个目标数组 $res ,遍历$arr

$res = array();

foreach($arr as $v){

    //先判断一下现在遍历的数组是否已经存在于目标数组

    if(isset($res[$v['doctor_uid']])){

        //已经存在的话需要判断 answer_num 的值和已存的值的大小

        if($v['answer_num'] > $res[$v['doctor_uid']]['answer_num']){

            //当当前遍历的数组的  answer_num 值大于 $res 数组中已存的时候更新这个数组

            $res[$v['doctor_uid']] = $v;

        }

    }

    else{//当不存在的时候新增进去

        $res[$v['doctor_uid']] = $v;

    }

}

//经过上面的遍历 $res 即为去除重复uid的结果集,因为目前返回回来的是下表为uid的数组,此处改成下表从0开始

$res = array_value($res);

array_unique

()

函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。

注意:被保留的数组将保持第一个数组项的键名类型

简单处理一下,只保留较新的登录时间。而且无重复。

<php

$a=array(

array(

"role_id"=>"48357" ,

"login_time"=>"2011-08-14 00:02:26"

),

array(

"role_id"=>"48357" ,

"login_time" => "2011-08-14 00:01:51"

),

array(

"role_id"=> "48356",

"login_time"=> "2011-08-14 00:02:25"

),

array(

"role_id"=> "48358",

"login_time"=> "2011-08-14 00:02:45"

),

array(

"role_id"=> "48365",

"login_time"=> "2011-08-14 00:05:52"

),

array(

"role_id"=> "48369" ,

"login_time"=> "2011-08-14 00:06:40"

),

array(

"role_id"=> "48372",

"login_time"=> "2011-08-14 00:08:36"

),

array(

"role_id"=> "48368",

"login_time"=> "2011-08-14 00:06:43"

),

array(

"role_id"=> "48380" ,

"login_time"=> "2011-08-14 00:10:15"

),

array(

"role_id"=> "48377" ,

"login_time"=> "2011-08-14 00:09:48"

),

array(

"role_id"=> "48366" ,

"login_time"=> "2011-08-14 00:07:08"

)

);

$b=array();

foreach($a as $e){

$id=intval($e['role_id']);

$b[$id]=isset($b[$id])

(strtotime($e['login_time'])>strtotime($b[$id]['login_time'])) $e:$b[$id] : $e;

}

$b=array_values($b);

var_dump($b);

=============

显示

array

0 =>

array

'role_id' => string '48357' (length=5)

'login_time' => string '2011-08-14 00:02:26' (length=19)

1 =>

array

'role_id' => string '48356' (length=5)

'login_time' => string '2011-08-14 00:02:25' (length=19)

2 =>

array

'role_id' => string '48358' (length=5)

'login_time' => string '2011-08-14 00:02:45' (length=19)

3 =>

array

'role_id' => string '48365' (length=5)

'login_time' => string '2011-08-14 00:05:52' (length=19)

4 =>

array

'role_id' => string '48369' (length=5)

'login_time' => string '2011-08-14 00:06:40' (length=19)

5 =>

array

'role_id' => string '48372' (length=5)

'login_time' => string '2011-08-14 00:08:36' (length=19)

6 =>

array

'role_id' => string '48368' (length=5)

'login_time' => string '2011-08-14 00:06:43' (length=19)

7 =>

array

'role_id' => string '48380' (length=5)

'login_time' => string '2011-08-14 00:10:15' (length=19)

8 =>

array

'role_id' => string '48377' (length=5)

'login_time' => string '2011-08-14 00:09:48' (length=19)

9 =>

array

'role_id' => string '48366' (length=5)

'login_time' => string '2011-08-14 00:07:08' (length=19)

Aspnet中如何从数据库某字段中查找筛选出<img>标记,并让显示在网页上。打个比方说明下:比如现在我有一数据表,表中有一字段"content",类型 varchar,该字段是用来放新闻内容的(内容数据中包含代码),现在的问题就是在aspnet中如何在该字段的一大堆杂乱的数据中,把含的代码(即:含如<img src="">的标记代码)给提取出来,并且在前台用控件绑定,实现这些的显示。

以上就是关于php 二维数组值去重~全部的内容,包括:php 二维数组值去重~、PHP新人 多维数组去重问题 求帮助、PHP二维数组去重复,求大神帮忙。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/9686945.html

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

发表评论

登录后才能评论

评论列表(0条)

保存