比较PHP中的两个阵列



我在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'])));

问候。

相关内容

  • 没有找到相关文章

最新更新