2016-08-08 21 views
0

カートの商品を保存するために多次元のセッション配列を持っていますが、カートのリストの価格に0.00の価格が含まれているかどうかを調べたいと思います。 trueを返し、URLのリダイレクトを行います。 PHPが多次元セッション配列の要素値を見つける

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を表示し、どのようにそれが意味していますか?

+1

'array_search'は、true/falseではなく、一致した項目のキーを返します。アイテムが存在するかどうかを確認するだけの場合は、代わりに 'in_array'が必要です。 – iainn

答えて

0

あなたは初めに開始する必要があります:あなたが機能を使用したい場合は、読み取り、

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

:それは簡単なforeachで動作させる(つまり、最も効率的な方法です) phpマニュアルの中の関連するページを注意深く見てください。それは常にパラメータと関数を返すものについて説明します。

0

array_search

それはそうでない場合は、アレイ、FALSE で発見された場合に、針のキーを返します。

だからこそ、キーが見つかった場合は0が得られます。

function.array-search

関連する問題