2012-08-15 92 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; 
} 

但再次,使用数组赋值一直为我工作。