Funktion in_array() mit 2-dimensionalen Arrays ?

BeaTBoxX

Erfahrenes Mitglied
Geht so etwas?

Ich habe ein Array der Form

$heuhaufen:

[index] [id] [name]
1 2 bla1
2 4 bla2
3 6 fasel
4 8 bla17
5 42 bla45

$nadel = 'fasel';

Ich möchte eine Abfrage der Form in_array($nadel,$heuhaufen['name']) haben.
Aber so direkt geht das ja nicht.
Gibt es dafür eine elegante Lösung?

Danke

Gruß
Frank
 
Also so ein array?
Code:
$neuhaufen = array (
    [1] => array (
        [id] => 2
        [name] => bla1
    )
    [2] => array (
        [id] => 4
        [name] => bla2
    )
    usw.
)
Ob elegant weiß ich nicht, aber eine Lösung wäre:
PHP:
//$neuhaufen ist das gesamte Array
$nadel='fasel';
$gefunden=array();
foreach ($neuhaufen as $n) {
    if ($n['name'] == $nadel) {
        $gefunden[]=$n;
    }
}
 
Ja genau so.

Hmja ne Schleife ist dann wohl die einzige Möglichkeit. Dachte ich mach evtl nur was falsch bei der Syntax udn das würde mit Std-Funktionen auch gehen.
Dann schreib ich eben so etwas als Funktion selber.
Also sofern nicht noch einen Erleuchtung gepostet wird :)

Danke!
 
Du könntest das, was in der Schleife steht, auch in eine eigene Funktion schreiben und diese mit [phpf]array_walk[/phpf] auf die Array-Elemente anwenden.
Nur ein weiterer von wahrscheinlich vielen Wegen.
 
Zurück