2016-08-08 65 views
0

Ich habe unter Multi-Dimension-Session-Array, um Artikel zu speichern, möchte ich suchen, ob der Preis in der Warenkorb-Liste enthalten Preis mit 0.00, wenn ja, ich will es Geben Sie true zurück und führen Sie die URL-Umleitung durch.PHP finden Elementwert in Multi-Dimension-Session-Array

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 
     ) 

) 

Ich versuche haben:

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

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

es am Ende 0 angezeigt, was bedeutet dies?

+1

'array_search' gibt den Schlüssel des übereinstimmenden Elements zurück, nicht wahr/falsch. Wenn Sie nur prüfen möchten, ob ein Element vorhanden ist, möchten Sie wahrscheinlich stattdessen 'in_array'. – iainn

Antwort

0

Sie mit dem Anfang beginnen sollte: Machen Sie es sich mit einem einfachen foreacharbeiten (das ist der effizienteste Weg):

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

Wenn Sie eine Funktion verwenden möchten, lesen Sie sorgfältig die entsprechende Seite im PHP-Handbuch, die immer erklärt, was die Parameter sind und was die Funktion zurückgibt.

0

array_search

Gibt den Schlüssel für Nadel, wenn sie in dem Array, FALSE ansonsten gefunden wird.

das ist, warum Sie 0 bekommen, die der Schlüssel gefunden ist.

function.array-search