2016-08-09 211 views
-1

Ich möchte schrittweise durch ein PHP-Array und erstellen Sie eine Variable für jeden Eintrag darin. Meine Array ($ array) sieht wie folgt aus:Erstellen Sie eine Variable aus jedem Element in PHP-Array

Array 
(
    [0] => Array 
     (
      [first_name] => Arthur 
      [last_name] => Dent 
      [planet] => Earth 
     ) 

    [1] => Array 
     (
      [first_name] => Ford 
      [last_name] => Prefect 
      [planet] => Betelgeuse 
     ) 

) 

Ich habe habe folgendes:

$0_first_name = $array['0']['first_name']; 
$0_last_name = $array['0']['last_name']; 

Aber das ist ziemlich zeitaufwendig und bedeutet, ich muss ausdrücklich jeden erklären und dann kann auf jeder Ebene keine zusätzlichen Einträge innerhalb des Arrays zulassen.

Ich würde gerne wissen, was der beste Weg ist, dies bitte zu tun.

Danke für die Hilfe

Mike

+2

Können Sie erklären, was ist das? –

+2

Warum brauchen Sie sie als separate Variablen? Ein Array ist im Grunde eine Sammlung von Variablen. –

+4

Warum halten es Leute für eine gute Idee, skalare Variablen aus Array-Inhalten zu erstellen? ** Verwenden Sie das Array ist nicht toxisch **, und es ist unglaublich flexibler, dass Skalarvariablen mit dummen Namen – RiggsFolly

Antwort

0

etwas tun sollte, was ich denke, Sie zu tun versuchen.

$data=array(
    array('first_name'=>'Arthur','last_name'=>'Dent','planet'=>'Earth'), 
    array('first_name'=>'Ford','last_name'=>'Prefect','planet'=>'Betelgeuse') 
); 

foreach($data as $i => $arr){ 
    foreach($arr as $key => $value){ 
     ${$key.$i}=$value; 
     ${$i.'_'.$key}=$value; 
    } 
} 
echo $first_name0, $first_name1, ${'0_first_name'}; 

Offensichtlich habe ich die ganze Zahl nach dem Namen, aber es ist trivial, sie rückgängig zu machen und hat so etwas wie $0first_name oder $0_first_name - aber sie müssen anders behandelt werden, wenn sie zur Ausgabe - ${'1_first_name'} usw. - wieder, wie darauf hingewiesen worden, - Nicht der beste Ansatz für Wartbarkeit, also werde ich jetzt alle schlechten Entscheidungen, die ich im Leben getroffen habe, überdenken.

+0

Haa 'Arthur Dent & Ford Präfekt' +1 – RiggsFolly

+0

Ja, ich mag besonders das Thema in der Anordnung beteiligt - ein Klassiker! – RamRaider

+1

Opps, jetzt ging es zu weit. Variablennamen beginnend mit Zahlen, versuchen Sie es und sehen Sie, was passiert [siehe vorheriger Kommentar] (http://stackoverflow.com/questions/38854685/create-variable-from-each-item-in-php-array#comment65073863_38854685) – RiggsFolly