【发布时间】:2018-10-22 01:23:32
【问题描述】:
我正在尝试根据查找其中一个值(产品代码)来取消设置多维数组中的一行
这是一个稍微简化的数组结构/内容:
Array ([0] => Array ( [item_id] => code1 [item_desc] => first product [item_price] => 5.45 )
[1] => Array ( [item_id] => code2 [item_desc] => second product [item_price] => 9.25 ))
以下工作正常,除非尝试删除数组中的第一项 [0] - 因此无法删除篮子中的第一项。
$pid = 'code2';
$key = array_search($pid, array_column($_SESSION['cart_array'], 'item_id'));
if($key) {
unset($_SESSION['cart_array'][$key]);
sort($_SESSION["cart_array"]);
}
其中$pid = 'code1'的值,$key返回false,session变量内容不变
我尝试过使用 foreach 循环,它会找到值,但我似乎无法返回键
foreach ($_SESSION['cart_array'] as $search)
{
if($pid == $search['item_id'])
{
echo key($search); // returns item_id
}
}
非常感谢任何帮助。
【问题讨论】:
-
在
foreach中,您可以使用foreach ($_SESSION['cart_array'] as $key => $search),其中$key是您之后的值(在您的最后一个代码中)
标签: php arrays multidimensional-array unset