Einzelwert in Schleife [geschlossen] - PHP, Arrays, Schleifen, foreach

Ich mache eine Schleife:

$array = $_POST["d"];

foreach($array as $a){
print_r($a);
}

$ array enthält das Array (die Anzahl der Arraysvariiert) und ich bekomme das als Ergebnis. Ich möchte nur wissen, wie ich diese Werte einzeln in der Schleife nennen kann. zum Beispiel: $ thing = Wert von Methv in der Schleife

Array (
[1173627548] => Array (
[num] => 1173627548
[methv] => dont know
[q1] => -
[q2] => -
[q3] => U
[q4] => -
[comm] =>
)
)

Entschuldigung, wenn ich unklar bin

print_r ($ array) zeige dies:

Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) )

Hinweis: Ich habe jetzt 2 Arrays in diesem Array

Antworten:

0 für die Antwort № 1

Ich schätze, du willst das Array durchlaufen $a, deren einzelne Elemente ebenfalls Arrays sind.

Wenn Sie $ array loopen, gibt es ein Element, dessen Information die ist, die Sie sagten:

Array (
[1173627548] => Array (
[num] => 1173627548
[methv] => dont know
[q1] => -
[q2] => -
[q3] => U
[q4] => -
[comm] =>
)
)

Wenn Sie zugreifen möchten methv Element sollten Sie Folgendes tun:

foreach($array as $a){
echo $a["methv"]; // this would access $array[ 1173627548 ][ "methv" ]
}

Während die Foreach fortfährt, wirst du weiterhin auf alle zugreifen $array[ ][ "methv" ] Werte Ich hoffe es hilft.


Basiert auf Ihrem Kommentar, der das anzeigt print_r($array).

Lassen Sie mich zuerst einrücken, damit wir einen besseren Überblick über das Array bekommen:

    Array (
[0] => Array (
[1173627548] => Array (
[num] => 1173627548
[methv] => dont know
[q1] => -
[q2] => -
[q3] => U
[q4] => -
[comm] =>
)
)
[1] => Array (
[1182868902] => Array (
[num] => 1182868902
[methv] => dont know
[q1] => -
[q2] => -
[q3] => U
[q4] => -
[comm] => )
)
)
Array (
[0] => Array (
[1173627548] => Array (
[num] => 1173627548
[methv] => dont know
[q1] => -
[q2] => -
[q3] => U
[q4] => - [comm] =>
)
)
[1] => Array (
[1182868902] => Array (
[num] => 1182868902
[methv] => dont know
[q1] => -
[q2] => -
[q3] => U
[q4] => -
[comm] =>
)
)
)

Ich denke, du druckst es zweimal, weil wir zwei genau hintereinander liegende Arrays sehen können.

Wenn du willst [methv] Artikel, was Sie brauchen, ist Zugriff:

$array[ 0 ][ 1173627548 ][ "methv" ]
$array[ 1 ][ 1182868902 ][ "methv" ]

Also, was Sie tun können, ist zu verwenden foreach zweimal:

foreach ($array as $a) {
foreach ($a as $v) {
echo $v[ "methv" ];
}
}

0 für die Antwort № 2

Zum Debuggen würde ich ein grobes, aber lesbares Debugging vorschlagen, so:

function trace($a) { print "<pre>".var_export($a, 1)."</pre>"; }
// then you can do:
trace($array);

Wie für Ihre Frage können Sie auf den Methv-Schlüssel wie folgt zugreifen: $array[0][1173627548]["methv"] (oder $array[1173627548]["methv"] wenn der obige Trace die vollständige $ -Array-Variable ist.