2017-07-07 2 views
2

Ich habe eine MySQL-Abfrage-Ergebnis, das ich in ein Array eingeschaltet haben mit:Zugriffsarray Inhalt durch die Schleife

$row = customfunction_fetch_array($results); 

Dies ist, wie die $row Array aussieht:

Array(
    [0]=> Array ([Fruit]=> apple [Count]=>4 [Season]=>Summer 
    [1]=> Array ([Fruit]=> grape [Count]=>1 [Season]=>Fall 
    [2]=> Array ([Fruit]=> apple [Count]=>3 [Season]=>Winter 
    [3]=> Array ([Fruit]=> orange [Count]=>5 [Season]=>Spring 
    [4]=> Array ([Fruit]=> apple [Count]=>45 [Season]=>All 
) 

Was ich versuche Zu tun ist Schleife durch die eindeutigen Werte eines bestimmten Feldes und speichern sie in einem neuen Array.

$newArray =[]; 
foreach($row["Fruit"] as $myFruits){ 
    $newArray[] = $myFruits; 
} 

Ich erhalte eine Warnung aus:

"Invalid argument für foreach geliefert()"

+0

@axiac Es sieht aus wie es seine eigene Funktion ist, die alle Zeilen abruft. – Barmar

+1

'mysql_fetch_array()' gibt kein mehrdimensionales Array zurück. Wie kann das sein, wie das Array $ row aussieht? – Barmar

+0

ja es ist meine eigene Funktion, aber ich habe meinen Beitrag für jedermanns Zweck bearbeitet. – jumpman8947

Antwort

7

das Array gegeben, dass Sie auf dem Laufenden, gibt es keine $row['Fruit'] ist, gibt es $row[0]['Fruit'], $row[1]['Fruit'] etc ...

foreach($row as $values){ 
    $newArray[] = $values['Fruit']; 
} 

jedoch erhalten alle Fruits Sie können dies einfach tun:

$newArray = array_column($row, 'Fruit'); 
+0

Sie schlagen mich dazu .. – Difster

+0

Das ist falsch. '$ row' ist nur eine Zeile der Tabelle, nicht alle Zeilen. – Barmar

+0

@Barmar: Nicht gemäß dem Array 'print_r()' Ausgabe in der Frage. – AbraCadaver