Php 平面阵列到树阵列
我目前正忙于将数组“flat”修改为树的数组结构 我有一个类型为的数组:Php 平面阵列到树阵列,php,arrays,Php,Arrays,我目前正忙于将数组“flat”修改为树的数组结构 我有一个类型为的数组: $folders = array( array('Name' => 'Archive', 'Value' => 'Archive', 'Attributes' => 32, 'Delimiters' => '/'), array('Name' => 'Folder1', 'Value' => 'Archive/Folder1', 'Attributes' => 32
$folders = array(
array('Name' => 'Archive', 'Value' => 'Archive', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'Folder1', 'Value' => 'Archive/Folder1', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'FolderA', 'Value' => 'Archive/Folder1/DossierA', 'Attributes' => 64, 'Delimiters' => '/'),
array('Name' => 'Folder2', 'Value' => 'Archive/Folder2', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'FolderA', 'Value' => 'Archive/Folder2/FolderA', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'FolderB', 'Value' => 'Archive/Folder2/FolderA/FolderB', 'Attributes' => 64, 'Delimiters' => '/'),
);
$treefolders = array(
array('Name' => 'Archive', 'Value' => 'Archive', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'Folder1', 'Value' => 'Archive/Folder1', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'FolderA', 'Value' => 'Archive/Folder1/FolderA', 'Attributes' => 64, 'Delimiters' => '/')
),
array('Name' => 'Folder2', 'Value' => 'Archive/Folder2', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'FolderA', 'Value' => 'Archive/Folder2/FolderA', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'FolderB', 'Value' => 'Archive/Folder2/FolderA/FolderB', 'Attributes' => 64, 'Delimiters' => '/')
)
)
)
);
我会得到一个数组,类型如下:
$folders = array(
array('Name' => 'Archive', 'Value' => 'Archive', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'Folder1', 'Value' => 'Archive/Folder1', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'FolderA', 'Value' => 'Archive/Folder1/DossierA', 'Attributes' => 64, 'Delimiters' => '/'),
array('Name' => 'Folder2', 'Value' => 'Archive/Folder2', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'FolderA', 'Value' => 'Archive/Folder2/FolderA', 'Attributes' => 32, 'Delimiters' => '/'),
array('Name' => 'FolderB', 'Value' => 'Archive/Folder2/FolderA/FolderB', 'Attributes' => 64, 'Delimiters' => '/'),
);
$treefolders = array(
array('Name' => 'Archive', 'Value' => 'Archive', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'Folder1', 'Value' => 'Archive/Folder1', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'FolderA', 'Value' => 'Archive/Folder1/FolderA', 'Attributes' => 64, 'Delimiters' => '/')
),
array('Name' => 'Folder2', 'Value' => 'Archive/Folder2', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'FolderA', 'Value' => 'Archive/Folder2/FolderA', 'Attributes' => 32, 'Delimiters' => '/', 'subnode' =>
array('Name' => 'FolderB', 'Value' => 'Archive/Folder2/FolderA/FolderB', 'Attributes' => 64, 'Delimiters' => '/')
)
)
)
);
我不知道如何得出最后的结果
你能帮我吗?这是不可能的,在PHP中数组不能用作数组键。您可以仅使用目录名作为密钥
最好的解决方案是改变创建阵列的方式,或者重新考虑代码和/或数据结构。你的问题可能有一个更简单的解决方案,也许可以重新问你的问题。请参阅。抱歉,我在第一篇帖子中做了任何事情 下面是我的数组“flat”的结构: 我正在寻求:
Array
(
[0] =>
Array
(
'Name' => 'Archive'
'Value' => 'Archive'
'Attributes' => 32
'Delimiters' => '/'
'SubNode' =>
Array
(
[0] =>
Array
(
'Name' => 'Folder1'
'Value' => 'Archive/Folder1'
'Attributes' => 32
'Delimiters' => '/'
'SubNode' =>
Array
(
[0] =>
Array
(
'Name' => 'FolderA'
'Value' => 'Archive/Folder1/DossierA'
'Attributes' => 64
'Delimiters' => '/'
)
)
)
[1] =>
Array
(
'Name' => 'Folder2'
'Value' => 'Archive/Folder2'
'Attributes' => 32
'Delimiters' => '/'
'SubNode' =>
Array
(
[0] =>
Array
(
'Name' => 'FolderA'
'Value' => 'Archive/Folder2/FolderA'
'Attributes' => 32
'Delimiters' => '/'
'SubNode' =>
Array
(
[0] =>
Array
(
'Name' => 'FolderB'
'Value' => 'Archive/Folder2/FolderA/FolderB'
'Attributes' => 64
'Delimiters' => '/'
)
)
)
)
)
)
)
)
正常情况下,它应该是可能的^^