【发布时间】:2014-07-08 10:54:52
【问题描述】:
我有一个包含许多嵌套子级别的多维数组,我想将其打印为格式良好的 ol li ol li ... 列表。所以我创建了这个函数,但是它不能正常工作:
function loop($array) {
echo '<ol class="dd-list">';
$arrayObj = new ArrayObject($array);
foreach ( $iterator = $arrayObj->getIterator() as $key => $value ) {
if(is_array($value)) {
loop($iterator->current());
} else {
if($iterator->key()=='position') {
echo '<li class="dd-item" data-id="' . $iterator->current() . '">';
echo '<div class="dd-handle">' . $iterator->key() . ' ' . $iterator->current() . '</div>';
echo '</li>';
}
}
}
echo '</ol>';
}
我该如何解决? 给定的数组是:
Array
(
[item] => Array
(
[0] => Array
(
[ID] => 22063
[position] => 1
[disegno] => Disegno 22063
[items] => Array
(
[item] => Array
(
[0] => Array
(
[ID] => 22315
[position] => 1.1
[disegno] => Disegno 22315
)
[1] => Array
(
[ID] => 22064
[position] => 1.2
[disegno] =>
Disegno 22064
)
[2] => Array
(
[ID] => 22065
[position] => 1.3
[disegno] =>
Disegno 22065
[items] => Array
(
[item] => Array
(
[0] => Array
(
[ID] => 22065_1
[position] => 1.3.1
[disegno] =>
Disegno 22065_1
)
[1] => Array
(
[ID] => 22065_2
[position] => 1.3.2
[disegno] =>
Disegno 22065_2
)
)
)
)
[3] => Array
(
[ID] => 22068
[position] => 1.4
[disegno] =>
Disegno 22068
)
)
)
)
[1] => Array
(
[ID] => 24728
[position] => 2
[disegno] =>
Disegno 24728
)
[2] => Array
(
[ID] => 445
[position] => 3
[disegno] =>
Disegno 445
)
[3] => Array
(
[ID] => 21318
[position] => 4
[disegno] =>
Disegno 21318
)
)
)
【问题讨论】:
-
它为每个“li”构建“ol”,这是错误的,因为我想为嵌套的“li”组使用“ol”,而不是为单个“li”。
-
请多解释。有什么问题?
-
我想要一个这样的列表:ol li ol li li /ol /li /ol 当我错误地有这样的东西时:ol li /ol ol li /ol。我够清楚了吗?
-
你最终找到答案了吗?
标签: php jquery arrays multidimensional-array iteration