2012-08-15 30 views
0

如何將多維數組的部分添加到現有的二維(關聯) 數組中?將多維數組的子陣列附加到PHP關聯數組

例如,對於現有的關聯數組包含下列元素:

$builder = array(); 
$builder['builder_id'] =  $source['id']; 
$builder['builder_name'] =  $source['name']; 
$builder['builder_address'] = $source['address']; 

如何可以在下面的多維數組的部分:

$selection[$category['category_name']]['item_name'] = $category_general['item_name']; 
$selection[$category['category_name']]['item_source'] = $category_general['item_source']; 
$selection[$category['category_name']]['item_image'] = $category_general['item_image']; 

被附加到創建的結構如下:

$builder['builder_id'] 
$builder['builder_name'] 
$builder['builder_address'] 
$builder['category_name'] 
$builder['category_name']['item_name'] 
$builder['category_name']['item_source'] 
$builder['category_name']['item_image'] 

這樣的分配不起作用:

$builder['category_name'] = $selection[$category['category_name']]; 
$builder['category_name'] = $selection[$category['category_name']][]; 

有什麼建議嗎?

謝謝!

編輯:
@symcbean你是對的。由於分配的數組中的空元素,賦值失敗。
@Snowsickle謝謝提示,指出問題的來源。

+0

PHP數組不是多維的 - 它們是嵌套的。 – symcbean 2012-08-15 21:25:03

+0

你能澄清嵌套和多維數組之間的區別嗎? – pseudonymo 2012-08-17 20:57:40

+0

谷歌下跌*再次*?嘗試http://stackoverflow.com/questions/11177615/whats-the-difference-between-arrays-of-arrays-and-multidimensional-arrays初學者 – symcbean 2012-08-20 08:37:10

回答

2

第一項任務應該可以工作。

$builder['category_name'] = $selection[$category['category_name']]; 

將分配包含在數組中$selection[$category['category_name']]所有值到陣列$builder['category_name']

DEMO

+0

PHP使用此分配方法時收到錯誤: 'PHP錯誤遇到' '嚴重性:通知' '消息:未定義的指數:住宅和商業# '文件名:controllers/cron.php' '行號:238' – pseudonymo 2012-08-15 21:13:42

+1

Snowsickle是正確的。如果你得到了這個錯誤,那麼你在問題的第二個代碼塊中顯示的分配將失敗 - 它失敗的原因是由於$ category數組的內容 - 而不是組合數組的方法。 – symcbean 2012-08-15 21:24:41

+0

@pseudo,請在$ select和$ builder數組中使用[var_dump()](http://php.net/manual/en/function.var-dump.php),然後使用結果編輯您的問題。 – 2012-08-15 21:40:52

0

分配應該工作..但如果你需要一種替代方法:

foreach($selection[$category['category_name']] as $key => $value) 
{ 
    $builder['category_name'][$key] = $value; 
} 

但再次,使用數組賦值一直爲我工作。