2012-12-14 35 views
-1

我在找人解決這個問題。 所以我想陣列添加到一個數組,但與名稱類似這樣的例子:帶名稱的嵌套數組PHP

array( 
    'names' = > array('firstname' => 'jean') 
); 

和第二次我想追加另一個項目是這樣的:

array( 
    'names' = > array('firstname' => 'jean'), 
       array( 'age' = > '23')   

); 

array( 
    'names' = > array('firstname' => 'jean'), 
       array( 'age' = > '23'), 
       array( 'job' = > 'programmer') 


); 

在此先感謝您。

+5

你確定這就是你想要的結構......? – deceze

回答

1
$a = array('names'=>array()); 
$a['names'][] = array('firstname' => 'jean'); 
$a['names'][] = array( 'age' = > '23'); 
$a['names'][] = array( 'job' = > 'programmer'); 

,或者您可以使用array_pushhttp://php.net/manual/en/function.array-push.php

$a = array('names'=>array()); 
array_push($a['names'], array('firstname' => 'jean')); 
array_push($a['names'], array( 'age' = > '23'); 
... 

至於@deceze評論,正確struvture是:

array(
    array('firstname' => '', 'age' => 100, 'job' => ''), 
    array('firstname' => '', 'age' => 100, 'job' => ''), 
    array('firstname' => '', 'age' => 100, 'job' => '') 
) 

而且你可以把它作爲你的結構的子陣列。

+0

謝謝,這是有幫助的 –

1
$arr['names'] = array(); 
$arr['names'][] = array('firstname' => 'jean'); 
$arr['names'][] = array('age' => '23'); 
$arr['names'][] = array('job' => 'programmer'); 
0

對不起,但我即將在這裏逆流。對我來說,真的,真的真的將使很多更有意義,如果你的陣列是這樣的:

array('names' => array('jean' => array('age' => '23', 
             'job' => 'programmer'))); 

要做到這一點,那麼,如果要動態地建立這種類型的數組:

$main = array('names' => array()); 
//get data from db or something 
$main['names'][$data['firstname']] = array('age' => $data['age'], 
              'job' => $data['job']); 

只是使更多的意義。要列出所有的名字:array_keys($main['names']);這樣做,所以數組鍵仍然表示它攜帶的實際數據。
爲了得到屬於某個人的所有數據:

$allNames = array_keys($main['names']); 
echo $allNames[0].' is a '.$main['names'][$allNames[0]]['age'].' year old '.$main['names'][$allNames[0]]['job'].'<br/>'; 

在這種情況下,輸出將是「珍是個23歲的程序員」
同樣,這可能不是一個直接回答你的問題,但是當你遇到問題時,這可能會證明是有用的,這將會產生什麼age屬於jobname。當然,一個對象是另一種避免這種方式的方法。