PHP Suche mehrdimensionales assoziatives array von Schlüssel und return-Taste => Wert
Hallo ich habe ein mehrdimensionales assoziatives array:
$array= array(
'Book1' => array('http://www.google.com', '45' ),
'Book2' => array('http://www.yahoo.com', '46', )
)
Ich muss in der Lage sein zu suchen, $array auf 'BookX" und dann wieder der Inhalt von "BookX'.
Ive versucht:
function array_searcher($needles, $array)
{
foreach ($needles as $needle) {
foreach ($array as $key )
{
if ($key == $needle)
{
echo $key;
}
}
}
}
mit der Suche
$needles = array('Book1' , 'Book2' );
Aber dies tut alles zurückzugeben, was
- Gelöst, indem Sie : foreach ($array as $key => $Wert )
- Eine Antwort auf diese Frage, ohne zu bauen, nested loops ist geschrieben in Antwort auf stackoverflow.com/questions/5806245/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie suchen möchten, mithilfe der Tasten, die Sie zugreifen, sollten Sie es als Schlüssel, => Wert-paar.
Wenn Sie nicht, es ruft nur den Wert.
Ich könnte Missverständnisse, aber das klingt genau wie die accessor. Wenn nicht, könnten Sie das klären?
EDIT: ich habe missverstehen Ihr Ziel. Ich habe einen Kommentar auf das tun der beiden foreach-Schleifen. Während dies funktioniert, wenn Sie haben eine sehr große Heuhaufen array performance leidet. Ich würde empfehlen, mit
isset()
zu testen, ob eine Nadel existiert im Heuhaufen array.Ich die Funktion geändert, die Rückgabe ist ein array mit den gefundenen Ergebnissen zu entfernen, keine performance-hits aus bestens auf die Standardausgabe. Ich lief die folgenden performance-test, und während es möglicherweise nicht die gleiche Suche über und über, Sie verweist auf die Ineffizienz von zwei foreach-Schleifen, wenn Sie die array(s) sind groß: