doutangqi4444
2016-08-08 09:51 阅读 39
已采纳

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

I have below multi-dimension session array to store cart items, I want to search whether the price in the cart list are contain price with 0.00, if yes, I want it to return true and do URL redirection.

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
        )

)

I've try :

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

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

it end up displayed 0, what does it means?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    dongtuoleng8624 dongtuoleng8624 2016-08-08 10:00

    You should start with the beginning: Make it work with a simple foreach (that is the most efficient way):

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

    When you want to use a function, read carefully the related page in the PHP manual, that always explains what are the parameters and what returns the function.

    点赞 评论 复制链接分享
  • doufu1939 doufu1939 2016-08-08 10:00

    array_search

    Returns the key for needle if it is found in the array, FALSE otherwise.

    that's why you get 0 wich is the key found.

    function.array-search

    点赞 评论 复制链接分享

相关推荐