2016-04-18 13 views
0

Ich bin hier ein bisschen verwirrt. Ich bin in der Lage, alle Array-Werte zu erhalten, oder nur einen durch Angabe der Zahl, aber ich kann nicht herausfinden, wie man den Wert des Elements namens "flag" im Array erhält. Ich bin neu bei Arrays im Allgemeinen und versuche, die ganze Terminologie zu lernen, aber ich kann anscheinend nicht erreichen, was ich brauche. Hier ist das Array:Wie bekomme ich den Wert des 3. Elements dieses Arrays in PHP?

Array 
(
[0] (Array 
    (
     [id] => 1 
     [name] => Bag 
     [flag] => 0 
    ) 

[1] => Array 
    (
     [id] => 2 
     [name] => Screen 
     [flag] => 0 
    ) 

[2] => Array 
    (
     [id] => 3 
     [name] => HD 
     [flag] => 0 
    ) 

) 

Um diese Ausgabe zu erhalten, schrieb ich:

print_r(array_values($items)); 

Wenn ich geben (was ich verstehen, wo dies aus zieht):

print_r(array_values($items[1])); 

Dann habe ich Erhalten:

Array 
(
[0] => 2 
[1] => Screen 
[2] => 1 
) 

Was ich bekommen muss ist der Wert der "Flag" (3.) Spalte in diesem Array. Ich bin mir nicht sicher, wie ich diesen Wert bekommen soll. Das Array wird immer in dieser Reihenfolge aus der MySQL-Datenbank ziehen. Ich versuche im Grunde, etwas wie folgt zu tun:

Ich bin nur nicht sicher, wie dieses 3. Element zu spezifizieren.

Dank

+1

Keine Punkte, nur eckige Klammern und beliebige Stringschlüssel müssen zitiert werden: 'if ($ array [1] ['flag'] == 1) {' – larsAnders

+3

Verwenden Sie '$ array [1] [flag]' not '$ array [1]. [flag] 'Beachten Sie das Fehlen der Periode in meinem ersten Beispiel. Aktivieren Sie auch die Fehlerberichterstattung, da sie Sie wegen solcher Dummheit angeschrien hätte. – MonkeyZeus

+0

Der Aufruf von 'array_values ​​()' hat die eigentlichen Schlüssel des Arrays verdeckt. Zeigen Sie den Inhalt an, ohne das aufzurufen. –

Antwort

0

Wenn Sie das dritte Element in der Gruppe von Unterfeldern bedeuten dann tun Sie es wie folgt aus:

$thirdItem = $items[2] 

wenn aus drittes Element bedeuten Sie die Sub-Array mit id = 3 dann

function getItemByID($items, $id) { 
    for($i = 0; $i < count($items); $i ++) { 
     if($items[$i]['id'] == $id) return $items[$i]; 
    } 
} 

$item = getItemByID($items, 3); 

wenn vom 3. Element meinen Sie Wert der Flagge in Subarray 3

$value = $items[2]['flag']; 

oder

$value = $thirdItem['flag'] 

Ich hoffe, dass hilft!

+0

Funktioniert gut! Vielen Dank! – sensualstares

0

$items ist die (äußere) array die die Arrays hält. Foreach iteriert über die im (äußeren) Array enthaltenen Arrays. Sie sind der Variablen $item zugeordnet. Wenn der Wert von ‚flag‘ eines Arrays gleich 1 ist, dann „Flag ist wahr“ ist hallte, sonst „Flag ist falsch“

foreach ($items as $item) { 
    echo $item['flag'] == 1 ? "Flag is true" : "Flag is false"; 
} 
+0

Während dieser Code die Frage beantworten kann, wäre es besser, einen Kontext einzubauen, zu erklären, wie es funktioniert und wann es zu verwenden ist. Nur-Code-Antworten sind auf lange Sicht nicht nützlich. – Bono

+0

Bitte fügen Sie eine Beschreibung –

+0

Nun, habe ich meine Antwort mit einer Beschreibung aktualisiert. – Reto

0

Ihr Code ein wenig Syntaxfehler hat $array[1].["flag"] kann keine . haben zwischen, sollte

sein
if ($array[1]["flag"]==1){ 
echo "Flag is true"; 
}else{ 
echo "Flag is false"; 
} 

Dies sollte funktionieren.

0

Dies ist ein kleines Beispiel, was Sie in Ihrer Frage geschrieben haben. Ich habe mir die Freiheit genommen, die Flagge des 2. und 3. Feldes für dieses Beispiel zu ändern.

$items = array 
(
0 => array 
    (
     'id' => 1, 
     'name' => 'Bag', 
     'flag' => 0 
    ), 
1 => array 
    (
     'id' => 2, 
     'name' => 'Screen', 
     'flag' => -1 
    ), 
2 => array 
    (
     'id' => 3, 
     'name' => 'HD', 
     'flag' => 1 
    ) 

); 
foreach($items as $item) { 
    if(empty($item['flag'])) { 
     echo "Item having ID=".$item['id']." has it's flag turned off\n"; 
    } else { 
     if($item['flag']==1) { 
     echo "Item having ID=".$item['id']." has it's flag turned on\n"; 
     } else { 
     echo "Item having ID=".$item['id']." has unacceptable flag value \n"; 
     } 
     } 
    } 

Das obige Beispiel füllt die folgenden:

  • Artikel mit ID = 1 hat es den Flag
  • Artikel mit ID = 2 hat inakzeptablen Flagwert
  • Artikel mit ID = 3 ausgeschaltet hat es die Flagge eingeschaltet

Sie können es hier überprüfen: http://sandbox.onlinephpfunctions.com/code/8b04a7d9faae8c0a8d335b6cccdadcc7fbe61f61

Verwandte Themen