2016-06-05 9 views
0

Ich habe eine Source-Array, das wie folgt aussieht:Einfache Möglichkeit, Array aus Schlüssel- und bestimmten Sub-Array-Werten zu erstellen?

$data = array(
    'foo' => array(
     'bar' => 'foo_bar', 
     'baz' => 'foo_baz' 
    ), 
    'fizz' => array(
     'bar' => 'fizz_bar', 
     'baz' => 'fizz_baz' 
    ) 
); 

Ich möchte ein anderes Array schaffen, indem eine Taste der Auswahl: bar oder baz, die alle der Wurzelschlüssel mit den Werten der angegebenen Schlüssel zurückkehren ?

some_function($data, 'bar') == array(
    'foo' => 'foo_bar', 
    'fizz' => 'fizz_bar' 
); 

Gibt es eine integrierte PHP-Funktion (en) die folgenden Ergebnisse zu erzeugen, ohne meine eigenen Loops zu tun?

Antwort

1
$data = array(
    'foo' => array(
     'bar' => 'foo_bar', 
     'baz' => 'foo_baz' 
    ), 
    'fizz' => array(
     'bar' => 'fizz_bar', 
     'baz' => 'fizz_baz' 
    ) 
); 

bar wählen:

$result = array_combine(
    array_keys($data), 
    array_column($data, 'bar') 
); 

Hier ein Beispiel:

php > var_dump(array_combine(array_keys($data), array_column($data, 'bar'))); 
array(2) { 
    ["foo"]=> 
    string(7) "foo_bar" 
    ["fizz"]=> 
    string(8) "fizz_bar" 
} 

Beachten Sie, dass array_column() wurde in PHP 5.5 eingeführt.

+0

Ich schrieb die exakt gleiche Antwort, also wenn es Ihnen nichts ausmacht, fügte ich nur das Beispiel hinzu, das ich zeigen wollte, und den Hinweis über 5.5+. Rollback wenn du nicht magst :) – Will

Verwandte Themen