从文本行创建多维数组 [英] Create Multidimensional array from text lines
本文介绍了从文本行创建多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果您有这样的文本文件:
If you have a text file like this:
item1
item1 > item3
item1 > item3 > item4
item1 > item5
item1 > item5 > item6 > item7
item2 > item8
item2 > item8 > item9
我想要一个看起来像这样的数组:
And I want a array that looks like this:
array(
[item1]
array(
[item3]
array(
[item4]
)
[item5]
array(
[item6]
array(
[item7]
)
)
)
[item2]
array(
[item8]
array(
[item9]
)
)
)
我应该如何在PHP中做到这一点? 我不知道从哪里开始. 谢谢.
How should I make this in PHP? I have no idea where to start. Thanks.
推荐答案
这是解决问题的一种非常简单的方法.结果并不完全相同(最后一个元素也是数组),但是我认为这更加灵活:
Here's a very simple way to approach your problem. The result is not exactly the same (the last element is also an array) but this is more flexible I think:
$input = array(
'item1',
'item1 > item3',
'item1 > item3 > item4',
'item1 > item5',
'item1 > item5 > item6 > item7',
'item2 > item8',
'item2 > item8 > item9',
);
$data = array();
foreach ($input as $line) {
$parent =& $data;
foreach (array_map('trim', explode('>', $line)) as $el) {
if (!isset($parent[$el])) {
$parent[$el] = array();
}
$parent =& $parent[$el];
}
}
print_r($data);
/*
Array (
[item1] => Array (
[item3] => Array (
[item4] => Array ()
)
[item5] => Array (
[item6] => Array (
[item7] => Array ()
)
)
)
[item2] => Array (
[item8] => Array (
[item9] => Array ()
)
)
)
*/
演示: http://codepad.viper-7.com/IwZFQ3
这篇关于从文本行创建多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文