PHP mehrdimensionales array durchsuchen (mit array_search)
Ich bin mir bewusst,diese Frage, aber ich habe eine zusätzliche ein, um die Suche für ein array-Schlüssel. Werfen Sie einen Blick auf diese:
array(2) {
[0]=>
array(2) {
["name"]=>
string(6) "Text 1"
["types"]=>
array(3) {
[0]=>
string(7) "Level 1"
[1]=>
string(14) "something else"
[2]=>
string(15) "whatisearchfor1"
}
}
[1]=>
array(2) {
["name"]=>
string(6) "Text 2"
["types"]=>
array(3) {
[0]=>
string(7) "Level 2"
[1]=>
string(14) "something else"
[2]=>
string(15) "whatisearchfor2"
}
}
}
echo array_search("Text 2", array_column($response, "name"));
...gibt mir eine 1 für die zweite array-Schlüssel, in denen der Begriff gefunden wurde.
Aber wie bekomme ich die globalen array-Schlüssel (0 oder 1), wenn ich Suche für whatisearchfor2, die gespeichert ist in der multi-array "types"?
echo array_search("whatisearchfor2", array_column($response, "types"));
...funktioniert nicht.
- Sie können
var_dump(array_column($response,'types'))
für bekommen Ausgabe-array diese Funktion.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem Fall
array_column($response, "types")
zurück ein array von arrays. Aber man "global array-Schlüssel (0 oder 1), wenn Sie suchen für whatisearchfor2" verwenden Sie den folgenden Ansatz mitarray_walk
:array_search("whatisearchfor2", array_column(array_column($response, "types"), 0));
arbeitet, auch. Was ist besser oder effektiver?