php array key unset if element是第二个数组中的另一个元素

时间:2014-06-30 12:30:15

标签: php arrays multidimensional-array

我有一个名为$new_items的数组,格式如下,有多个项....

Array
(
[0] => Array
    (
        [id] => 66901
        [weight] => 0.3000
        [Price] => 14.1800
        [category] => Array
            (
                [parent_id] => Array
                    (
                        [0] => 222
                        [1] => 1232
                        [2] => 1315
                    )
                        ) 
                        .......and (cont...)
                            [1] => Array
    ( ......

我有以下格式的另一个数组$data

Array
(
[174] => 67495
[253] => 67471
[278] => 67460
[323] => 67412
[390] => 67332
[600] => 67282
[738] => 67209
)

我希望删除$new_items数组中父级$data数组中的父级。

我的代码如下:

foreach ($new_items as $key => $item) {
if ($item['id'] === $data) {
    unset($new_items[$key]);
  }
}

未删除父级。

但如果我按如下方式对id进行硬编码:

if ($item['id'] === "67495"), 

它被删除..

请帮帮我......

2 个答案:

答案 0 :(得分:0)

$ data是一个数组,因此您无法将其与整数值进行比较!请改用in_array ..

foreach ($new_items as $key => $item) {
if (in_array($item['id'], $data)) {
    unset($new_items[$key]);
  }
}

答案 1 :(得分:0)

foreach ($new_items as $key => $item) 
{

   if(array_search($item['id'], $data))
   {
       $key = array_search($item['id'], $data);
       unset($data[$key]);
   }

}