我的$_SESSION
以下面的格式存储数组。所有productId
值都是唯一的。我想使用productId
获取数组键。
Array
(
[0] => Array
(
[productId] => 3
[productQuantity] => 1
)
[1] => Array
(
[productId] => 4
[productQuantity] => 1
)
[2] => Array
(
[productId] => 5
[productQuantity] => 1
)
)
我已经尝试了array_search
但它没有用。我实际上看到了一个类似的问题,但答案却不为人知。这是我试过的代码,但它没有显示任何内容:
$key = array_search(3,$_SESSION['cart']);
echo $key;
答案 0 :(得分:1)
由于它们是唯一的,只需通过productId
重新索引:
$cart = array_column($_SESSION['cart'], null, 'productId');
echo $cart[3]['productQuantity'];
或者:
echo array_column($_SESSION['cart'], null, 'productId')[3]['productQuantity'];
如果你只拥有那些2,那么提取productQuantity
并按productId
重新索引是有意义的:
$cart = array_column($_SESSION['cart'], 'productQuantity', 'productId');
echo $cart[3];
数组看起来像$cart = [3 => 1, 4 => 1, 5 => 1]
。
或者:
echo array_column($_SESSION['cart'], 'productQuantity', 'productId')[3];
如果由于某种原因你真的只想要当前的密钥,请提取productId
并搜索(只要密钥是基于0和顺序的:
$key = array_search(3, array_column($_SESSION['cart'], 'productId'));