我在PHP $数组中有一个数组,其中包含
等元素$array['id'].. $array['name'] $array['class']
我有另一个名为$ array1的数组,其元素只有$ array1 ['uid']。
我希望在$array['id'] and $array['uid']
的基础上匹配这两个数组
这样我想得到的元素$ array ['id']不等于$ array ['uid']`
在PHP中是否有任何内置函数,我可以使用我的客户函数为每个循环执行此操作,但是有任何函数吗?
输入是如果$ array有id = 2,4,5,6而$ array有uid = 2,4那么我应该得到$ array id = 5,6
$ array中的数据看起来像这样
{
"name": "abc",
"id": "37402526"
},
{
"name": "def",
"id": "506768590"
},
{
"name": "hij",
"id": "526405977"
}
和$ array 1一样
{
"id": "37402526"
},
{
"id": "506768590"
},
{
"
"id": "526405977"
}
答案 0 :(得分:0)
如果你的输入只是你用的例子,那么很简单:
$array['id'] = implode(',', array_diff(explode(',', $array['id']), explode(',', $array1['uid'])));
问候。
答案 1 :(得分:0)
如果你可以重写你的代码,使用数组键中的id,那么你可以使用array_diff_key():
$array = array(
'12' => array('name' => 'abc'),
'34' => array('name' => 'def')
);
$array2 = array('12' => true);
$result = array_diff_key($array, $array2);
否则你可以使用array_udiff():
function my_id_cmp($a, $b) {
return strcmp($a['id'], $b['id']);
}
$result = array_udiff($array, $array1, 'my_id_cmp');