[英]Hierarchical data into array
对于以下问题,我需要一些逻辑,但无法解决。 基本上我有一些数据,例如以下数组
array(
array('name' => 'Test1',
'hierarchy'=> '1'),
array('name' => 'Test2',
'hierarchy'=> '1.1'),
array('name' => 'Test3',
'hierarchy'=> '1.2'),
array('name' => 'Test4',
'hierarchy'=> '1.2.1')
)
现在我想以这样的方式输出数组
$array[1] = 'Test1';
$array[1][2][1] = 'Test4';
尝试过动态变量命名和动态创建多维数组,但两者似乎都没有用。
那不可能
对于$array[1] = 'Test1';
$array[1]
必须是一个字符串,但对于$array[1][2][1] = 'Test4';
它必须是一个数组。
您可以执行以下操作:
$array[1]['text'] = 'Test1';
$array[1][2][1]['text'] = 'Test4';
这是代码:
$result = array();
foreach ($input as $entry)
{
$path_components = explode('.', $entry['hierarchy']);
$pointer =& $result;
foreach ($path_components as $path_component)
$pointer =& $pointer[$path_component];
$pointer['text'] = $entry['name'];
unset($pointer);
}
如果您绝对不需要数组,则可以创建一个类并扩展ArrayClass,或者如果仅需要数组访问权限,则还可以实现ArrayAccess 。 从那里,您可以解析数据并返回应用程序所需的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.