Ich habe wie diese Array1:PHP array_keys mehrere Ebenen
Array
(
[0] => 123
[1] => 456
[2] => 789
)
Und Array 2 gefällt dieses
Array
(
[0] => Array
(
[0] => some text
[1] => 888
[2] => some
[3] => text
)
[1] => Array
(
[0] => some text
[1] => 123
[2] => some
[3] => text
)
[2] => Array
(
[0] => some text
[1] => 999
[2] => some
[3] => text
)
[3] => Array
(
[0] => some text
[1] => Array
(
[1] => 456
[2] => 789
)
[2] => some
[3] => text
)
[4] => Array
(
[0] => some text
[1] => 123
[2] => some
[3] => text
)
)
Ich bin nur 1. Spalte der zweiten Reihe überprüft und Werte zu finden, die Werte übereinstimmen von der ersten Array. Das ist mein Code:
$test=array();
$xcol = array_column($array2, 1);
foreach($array1 as $key => $value) {
if(($foundKey = array_keys($xcol, $value)) !== false) {
$rrt=$foundKey;
foreach($rrt as $rte){
$test[]=$array2[$rte];
}
}
}
echo "<pre>";
print_r($test);
echo "</pre>";
Es funktioniert und gibt mir richtige Ergebnisse, aber es überprüft nicht für alle Ebenen. Kann mir bitte jemand sagen, was mache ich falsch? Meine Ausgabe ist:
Array
(
[0] => Array
(
[0] => some text
[1] => 123
[2] => some
[3] => text
)
[1] => Array
(
[0] => some text
[1] => 123
[2] => some
[3] => text
)
)
und die gewünschte Ausgabe ist:
Array
(
[0] => Array
(
[0] => some text
[1] => 123
[2] => some
[3] => text
)
[1] => Array
(
[0] => some text
[1] => Array
(
[1] => 456
[2] => 789
)
[2] => some
[3] => text
)
[2] => Array
(
[0] => some text
[1] => 123
[2] => some
[3] => text
)
)
könnten Sie die [ 'recursiveArrayIterator'] verwenden (http://php.net/manual/en/class.recursivearrayiterator.php) –
http://php.net/manual/en/function.is-array.php – Hackerman
@mister martin, können Sie mir einen Tipp geben, wie würde ich als array_key Suche verwenden, um Wert zu finden und immer noch alles andere Sub-Array enthalten ausgeben? Ich habe noch nie recursiveArrayIterator verwendet, also bin ich ein wenig verwirrt – codexy