• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Array-Funktion zum extrahieren eines bestimmten Keys

Gilles

Blogger
Moin,
War grade auf php.net gucken um nach einer geignet Lösung für mein Problem zu suchen. Jedoch habe ich keine direkte Lösung gefunden. Vielleicht kann mir da einer von euch helfen.

Ich habe eine Array welches folgenden Aufbau hat
array
0 =>
array
'data1' => string 'bla' (length=3)
'data2' => string 'brr' (length=3)
1 =>
array
'data1' => string 'lol' (length=3)
'data2' => string 'brrrr!' (length=6)
...
Halt ein numerisches Array, welches assoziative Array-Schlüssel enthält.
Nun würde ich gerne data1 extrahieren und als numerisches Array haben.

Nacher:
array
0 => string 'bla' (length=3)
1 => string 'lol' (length=3)
..
Normalerweise mache ich so etwas über eine Schleife, jedoch würde mich interessieren um PHP keine eigene Array-Funktion für so etwas hat.

Aufgefallen ist mir dann auch PHP: array_walk - Manual . Hat damit schon mal jemand gearbeitet und könnte mir ein Beispiel zeigen? Denn ich war ein wenig verwirrt durch folgenden Satz.
Wenn der optionale Parameter userdata angegeben ist, wird er als dritter Parameter dem Callback funcname übergeben.
Kann ich dann also mein array mitgeben, die Funktion darüber aufrufen lassen und dann ein leres array mitgeben, das ich dann in der callback-Funktion pushe? :D

Edit:

Habs nun mal ausprobiert mit Array_walk, komme jedoch zu keinem Ergebnis.
Hier mal mein Test-Code:

PHP:
// Callback-Funktion: Zeigt auf newArray
function extractValue($array, $key, &$newArray ) {
  $value = $array['data1'];
  array_push($newArray,$value);
}

// Array setzen
$array = array(array("data1"=>"bla","data2"=>"brr"),array("data1"=>"lol", "data2"=>"brrrr!"));

// Array welches später data1 enthalten soll
$newArray = array();

// Callback-Funktion aufrufen
array_walk($array, "extractValue", $newArray);

// zum testen ausgeben
var_dump($newArray);
 
Zuletzt bearbeitet:
PHP:
// Array setzen
$array = array(array("data1"=>"bla","data2"=>"brr"),array("data1"=>"lol", "data2"=>"brrrr!"));

function map($d) {
    return $d['data1'];
}

array_map('map', $array);
nicht getestet
 
Vielen dank. Funktioniert wunderbar. Hab dieses mal noch mit ner Schleife gelöst, aber weiss ja nun wie es geht :D
Leider kann ich dich immer noch nicht bewerten. Aber hab so meinen Dank :):)
 
Zurück
Oben