我在php $ array中有一个数组,其中具有
之类的元素$array['id'].. $array['name'] $array['class']
我有另一个名为$ array1的数组,该数组仅具有元素$ array1 ['uid']。我想根据$array['id'] and $array['uid']
匹配这两个数组这样我想获得元素$ array ['id']不等于$ array ['uid']PHP中是否有任何内置功能,我可以使用我的Custome功能对每个循环进行操作,但是是否有任何功能?
输入是如果$ 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"
}
如果您可以重写代码,将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');
如果您的输入仅以您用作例如的格式,则很简单:
$array['id'] = implode(',', array_diff(explode(',', $array['id']), explode(',', $array1['uid'])));
问候。