从多维数组php中删除数组键

时间:2016-04-18 18:48:21

标签: php arrays multidimensional-array

我有这个数组

 $cart= Array(
      [0] => Array([id] => 15[price] => 400)
      [1] => Array([id] => 12[price] => 400)
    )

我需要的是根据某些值删除数组键,比如

$value = 15;

值为15只是示例我需要检查数组并删除ID中是否存在该值?

3 个答案:

答案 0 :(得分:8)

array_filter非常适合从数组中删除不需要的内容。

NullPointerException

如果您想使用变量来确定要删除哪个ID而不是将其包含在$cart = array_filter($cart, function($x) { return $x['id'] != 15; }); 回调中,您可以在函数中array_filter变量use

$value = 15;
$cart = array_filter($cart, function($x) use ($value) { return $x['id'] != $value; });

答案 1 :(得分:5)

PHP中有很多奇怪的数组函数,但很多这些请求都是通过非常简单的foreach循环来解决的......

$value = 15;
foreach ($cart as $i => $v) {
    if ($v['id'] == $value) {
        unset($cart[$i]);
    }
}

如果$ value根本不在数组中,则不会发生任何事情。如果$ value在数组中,则整个索引将被删除(未设置)。

答案 2 :(得分:1)

你可以使用:

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