PHP在多维会话数组中查找元素值

时间:2016-08-08 09:51:48

标签: php search multidimensional-array

我有以下多维会话数组来存储购物车项目,我想搜索购物车列表中的价格是否包含0.00的价格,如果是,我希望它返回true并进行URL重定向

Array
(
    [0] => Array
        (
            [p_name] => Product 01
            [p_id] => 123
            [p_price] => 0.00
            [p_alt-variation-1] => Blue
            [p_alt-variation-2] => L
            [p_qty] => 1
        )

    [1] => Array
        (
            [p_name] => Product 02
            [p_id] => 124
            [p_price] => 13.00
            [p_qty] => 1
        )

    [2] => Array
        (
            [p_name] => Product 03
            [p_id] => 125
            [p_price] => 99.00
            [p_qty] => 2
        )

)

我试过了:

$key = array_search(0.00, array_column($_SESSION['products'], 'p_price'));
echo $key;

if($key === true){
    //redirect url
}

它最终显示0,这意味着什么?

2 个答案:

答案 0 :(得分:0)

array_search

  

如果在数组中找到,则返回针的键,FALSE   否则。

这就是你找到0的原因。

function.array-search

答案 1 :(得分:0)

您应该从头开始:使用简单的foreach (这是最有效的方式)使用它

foreach ($_SESSION['products'] as $key => $product) {
    if ($product['p_price'] === '0.00') {
        // do what you want
    }
}

如果您想使用某个功能,请仔细阅读PHP手册中的相关页面,该页面总是说明参数是什么以及返回功能的内容。