PHP二维数组筛选两个键名与元素都相同的数据

在执行过程中保持原数组键名不变的情况下可以直接先取得 ‘name’,‘city’ 两个字段的数据,通过 array_unique 函数去除重复元素后接着 array_diff_assoc 比对修改前后的差值存入新数组,最后使用 foreach 进行查询两个字段的筛选情况即可得出结果。话不多说,直接上源码:

<?php
$provinces = [
[
'id' => 1,
'name' => '张三',
'city' => '湖南'
],[
'id' => 2,
'name' => '李四',
'city' => '河北'
],[
'id' => 3,
'name' => '张三',
'city' => '湖北'
],[
'id' => 4,
'name' => '王五',
'city' => '北京'
],[
'id' => 5,
'name' => '王五',
'city' => '北京'
],
];

list($arr1, $arr2) = [array_column($provinces, 'name'), array_column($provinces, 'city')];
list($arr1, $arr2) = [array_diff_assoc($arr1, array_unique($arr1)), array_diff_assoc($arr2, array_unique($arr2))];
foreach($arr1 as $k => $v) 
if(array_key_exists($k, $arr2))
$result[] = $v; //$result[] = $provinces[$k];
var_dump($result);
发布了3 篇原创文章 · 获赞 0 · 访问量 767

猜你喜欢

转载自blog.csdn.net/xuanziran/article/details/104872331