我有一个多维数组(如下所示)。我想要做的是找到一个特定的值,如果该值有子项,则只列出那些子项。因此,例如,如果我正在搜索slug的“test”,那么所有“test”的孩子都会在页面上列出。 “Test2”没有孩子,所以没有列出。如果我正在搜索“/ test / sub”(slug),并且由于它有孩子,我想要显示所有孩子(例如“sh”,“rd”,“co”)。我很遗憾如何开始这个,所以非常感谢任何帮助。
Array
(
[test] => Array
(
[children] => Array
(
[2] => Array
(
[parent] => 4
[title] => Sub
[slug] => test/sub/
[id] => 2
[children] => Array
(
[3] => Array
(
[parent] => 2
[title] => sh
[slug] => test/sub/sh
[id] => 3
)
[27] => Array
(
[parent] => 2
[title] => RD
[slug] => test/sub/rd
[id] => 27
)
[145] => Array
(
[parent] => 2
[title] => cO
[slug] => test/sub/co
[id] => 145
)
)
)
[8] => Array
(
[parent] => 4
[title] => sub2
[slug] => test/sub2
[id] => 8
)
[19] => Array
(
[parent] => 4
[title] => sub3
[slug] => test/sub3
[id] => 19
[children] => Array
(
[20] => Array
(
[parent] => 19
[title] => child1
[slug] => test/sub3/child1
[id] => 20
)
[21] => Array
(
[parent] => 19
[title] => child2
[slug] => test/sub3/child2 [id] => 21
)
)
)
答案 0 :(得分:1)
确定。我有办法解决这个问题,但我不确定它是否最有效率。假设查询数据库后得到的对象是$ anObject。所以我们会这样做,
for($i = 0;$i < 50;$i++){
if($anObject->test->children[$i]){
for($j = 0;$j < 200;$j++){
$slug = $anObject->test->children[$i]->$j->slug;
echo $slug;
}
}}
基本上,我正在检查$ i的特定值是否存在特定的对象,然后查看它是否具有特定值$ j的值。如果知道整数的范围,则可以更改这些值。当我们得到它时,我们在$ slug变量中获取它,然后在该部分中添加一些过程来使用该值。
如果有任何帮助,请告诉我。