Php 将分层数据放入数组
对于下面的问题,我需要一些逻辑,但我无法理解。基本上我有一些数据,比如下面的数组Php 将分层数据放入数组,php,Php,对于下面的问题,我需要一些逻辑,但我无法理解。基本上我有一些数据,比如下面的数组 array( array('name' => 'Test1', 'hierarchy'=> '1'), array('name' => 'Test2', 'hierarchy'=> '1.1'), array('name' => 'Test3', 'hierarchy'=> '1.2'),
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);
}
那是不可能的
对于$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);
}
如果不一定需要数组,可以创建一个类并进行扩展;如果只需要数组访问,也可以实现。
从那里,您可以解析数据并返回应用程序所需的值。如果您不一定需要数组,可以创建一个类并进行扩展,或者如果您只需要数组访问,还可以实现。
从那里,您可以解析数据并返回应用程序所需的值。您说,“尝试了动态变量命名和动态创建多维数组,但两者似乎都不起作用。”-向我们展示您的代码……您说,“尝试了动态变量命名和动态创建多维数组,但两者似乎都不起作用。“-向我们展示您的代码…这是一个有效的想法,但它需要某种内部排序映射,这样我们就不必每次都搜索正确的值。好的,php中的数组是一个排序的哈希映射,所以这有点多余。这个想法是正确的,但它需要某种排序的映射,这样我们就不必每次都搜索正确的值。php中的数组是一个排序的哈希映射,所以这有点多余。