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

Mio*_*vic 5 php arrays multidimensional-array

我有这个数组

 $cart= Array(
      [0] => Array([id] => 15[price] => 400)
      [1] => Array([id] => 12[price] => 400)
    )
Run Code Online (Sandbox Code Playgroud)

我需要的是删除基于某些值的数组键,就像这样

$value = 15;
Run Code Online (Sandbox Code Playgroud)

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

Don*_*nic 10

array_filter 非常适合从阵列中删除不需要的东西.

$cart = array_filter($cart, function($x) { return $x['id'] != 15; });
Run Code Online (Sandbox Code Playgroud)

如果你想使用一个变量来确定要删除哪个id而不是在array_filter回调中包含它,你可以use在函数中使用这样的变量:

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

  • 这个答案应该被接受。没有人愿意对单个任务使用循环 (3认同)

kai*_*naw 5

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

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

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

  • 如果用$ cart代替$ a令人困惑,这可能会超出您的范围。 (3认同)