2014-03-25 41 views
0

我想删除一个数组,其中的关键是[ITEM_ID]搜索值错误删除基于键值对

我需要删除整个阵列子阵列,但我做不到。

Array 
    (
     [0] => Array 
      (
       [ITEM_ID] => 4 
       [ITEM_MODEL] => BASIC Armario 
       [ITEM_FABRICANTE] => 1 
       [ITEM_COLOR] => Wenge 
       [ITEM_QUANTITY] => 1 
      ) 

     [1] => Array 
      (
       [ITEM_ID] => 8 
       [ITEM_MODEL] => Armario 2 Puertas 
       [ITEM_FABRICANTE] => 1 
       [ITEM_COLOR] => Roble 
       [ITEM_QUANTITY] => 1 
      ) 

    ) 

我试图用这个代码:

$array = array("ITEM_ID" => "4"); 
print_r($array); 

unset($array['ITEM_ID']); 
print_r($array); 

回答

1

您将通过阵列并取消设置适当的子阵列具有循环:

// begin looping 
foreach($array as $key=>$value) 
{ 
    // check if ITEM_ID is 4 
    if($value['ITEM_ID'] == '4') 
    { 
     // unset the array item using the $key 
     unset($array[$key]); 
     // stop the loop 
     break; 
    } 
} 
+0

注意,这将保留项目的键未被删除。要重置键的顺序,你可以在'for'循环外执行'$ array = array_values($ array);'。 –

+0

@DissidentRage你是对的,但为什么会造成更多的处理开销,如果它不是必需的? – MonkeyZeus

+0

我只是提供这个作为一个注释*如果*有必要按键顺序。现在可能不需要,但它有助于了解参考。 –