2016-08-09 46 views
-1

我想逐步完成一個PHP數組併爲其中的每個條目創建一個變量。我的陣列($陣列)看起來是這樣的:從PHP數組中的每個項目創建變量

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

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

) 

我有以下幾點:

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

但是,這是相當費時,而且意味着我需要顯式聲明每一個,然後不能在每個級別允許數組中的額外條目。

我想知道這樣做的最好方法是什麼。

感謝您的幫助

邁克

+2

你能解釋一下它是什麼嗎? –

+2

爲什麼你需要把它們作爲單獨的變量?數組基本上是一組變量。 –

+4

爲什麼人們認爲從數組內容創建標量變量是個好主意。 **使用它的無毒數組**,它的令人難以置信的更靈活的標量變量與愚蠢的名字 – RiggsFolly

回答

0

像這樣的事情應該怎麼做,我認爲你正在嘗試做的。

$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'}; 

很顯然,我有名字後的整數,但它是微不足道的逆轉他們,有一些像$0first_name$0_first_name - 但他們需要輸出時,它們進行不同處理 - ${'1_first_name'}等 - 再次,正如已指出 - 不是可維護性的最佳方法,所以現在我會去重新考慮我在生活中做出的所有糟糕的決定。

+0

Haa'Arthur Dent&Ford Prefect' +1 – RiggsFolly

+0

是的,我特別喜歡陣列中涉及的主題 - 經典! – RamRaider

+1

奧普斯,現在你去了很遠。以數字開頭的變量名稱,給它一個嘗試,看看會發生什麼[見以前的評論](http://stackoverflow.com/questions/38854685/create-variable-from-each-item-in-php-array#comment65073863_38854685) – RiggsFolly