问题描述
先谢谢你。有没有办法从键名创建多维数组。
$array = array(
'brand/name' => 'BRAND_NAME','brand/model' => 'MODEL_NO','brand/inv/qty' => '20','brand/inv/cost' => '30','wh' => 'NY','brand/inv/sales' => '40'
);
转换到这个数组。
$array = array(
'brand' => array(
'name' => 'BRAND_NAME','model' => 'MODEL_NO','inv' => array(
'qty' => 20,'cost' => 30,'sales' => 40,)
),'wh' => 'NY'
);
谢谢!
解决方法
试试我的代码(我使用引用运算符“&”来获取连续的内部数组):
输入数组:
$array = array(
'brand/name' => 'BRAND_NAME','brand/model' => 'MODEL_NO','brand/inv/qty' => '20','brand/inv/cost' => '30','wh' => 'NY','brand/inv/sales' => '40'
);
php 代码:
<?php
$resultArray = array();
foreach($array as $path => $element) {
$pathArray = explode("/",$path);
$auxRef = &$resultArray;
foreach($pathArray as $pathPart) {
if(! array_key_exists($pathPart,$auxRef)) {
$auxRef[$pathPart] = array();
}
$auxRef = &$auxRef[$pathPart];
}
$auxRef = $element;
unset($auxRef);
}
?>
结果数组:
array ( 'brand' => array ( 'name' => 'BRAND_NAME','model' => 'MODEL_NO','inv' => array ( 'qty' => '20','cost' => '30','sales' => '40',),)