2011-01-03 10 views
2

Ich habe eine Array-Liste, die ich wie mein Beispiel unten ausgeben möchte. Wie kann ich es in PHP erreichen?PHP-Array-Ausgabe

Array List: 
array(
    [0] => First, 
    [1] => Second, 
    [2] => Third, 
) 

Want to output like this: 
array(
    [First] => First, 
    [Second] => Second, 
    [Third] => Third 
) 

Danke, Steamboy

+0

+1 wir sind alle nicht total verrückt :) –

Antwort

3

Sie array_combine() verwenden können, und übergeben Sie zwei Kopien Ihr ursprüngliches Array:

$new_list = array_combine($list, $list); 
print_r($new_list); 

Ordnet den Inhalt des ersten Arguments als Schlüssel und den Inhalt des zweiten Arguments als Werte in der angegebenen Reihenfolge zu.

+0

warum habe ich das vermisst ?! Ich sollte jetzt etwas schlafen. Danke vielmals. – steamboy

2

ich es nicht getestet haben, aber dies sollte

foreach ($array as $key => $value) { 
    $array[$value] = $value; 
    unset($array[$key]); 
} 

Arbeit, die es tun sollten

2

Das ist Redundanz vom Feinsten. Es macht wenig Sinn, Schlüssel zu haben, die ihren Werten entsprechen, und unterstreicht wahrscheinlich die Notwendigkeit einer Designänderung oder einer möglichen Optimierung irgendwo in Ihrer Anwendung. Dieses Drehen:

array(
    [0] => First, 
    [1] => Second, 
    [2] => Third, 
) 

in dieser:

array(
    [First] => First, 
    [Second] => Second, 
    [Third] => Third 
) 

reduziert effektiv die Menge an Informationen, die Sie speichern, da Sie den Entwickler im Voraus wissen, die Schlüssel sollen Werte übereinstimmen.

+1

In all meinen Jahren Programmierung hatte ich nie den Schlüssel mit dem Wert in einem assoziativen Array übereinstimmen. Ich kann mir auch keinen guten Anwendungsfall für ein solches Array vorstellen. –

+0

Danke Nathan, ich habe jetzt die Bestätigung, dass ich nicht total verrückt bin :) – karim79

+0

Ich bin froh, dass du nicht total verrückt bist. Nathan, ich habe eine gute Verwendung dafür, ich brauche es, um ausgewählte Optionswerte auf CakePHP auszugeben. Gut für dich, dass du dem nicht begegnet bist. – steamboy