如何在php中从反向数组创建列表
我使用了如何在php中从反向数组创建列表,php,logic,jquery-ui-sortable,Php,Logic,Jquery Ui Sortable,我使用了jquerynestedsortable插件,每当项目改变顺序时,它都会返回一个项目列表。从下面的列表中可以看出: Item 371 Item 372 Item 373 Item 374 Item 375 我收到以下阵列: '0' ... 'id' => "371" 'parent_id' ... 'depth' => "0" 'has_child' => "0" '1' ... 'id' => "373"
jquerynestedsortable插件
,每当项目改变顺序时,它都会返回一个项目列表。从下面的列表中可以看出:
Item 371
Item 372
Item 373
Item 374
Item 375
我收到以下阵列:
'0' ...
'id' => "371"
'parent_id' ...
'depth' => "0"
'has_child' => "0"
'1' ...
'id' => "373"
'parent_id' => "372"
'depth' => "1"
'has_child' => "0"
'2' ...
'id' => "374"
'parent_id' => "372"
'depth' => "1"
'has_child' => "0"
'3' ...
'id' => "372"
'parent_id' ...
'depth' => "0"
'has_child' => "1"
'4' ...
'id' => "375"
'parent_id' ...
'depth' => "0"
'has_child' => "0"
我现在做的是存储每个项目的优先级(即数组no
)
问题是,通过提供的数组,子项(在上面的示例中1
和2
)的优先级高于其父项(在上面的示例中3
)
现在,每当视图被重新加载时,就不可能重新创建列表,因为子项将在父项之前回响
是否有其他方法从该数组中重新创建列表
编辑
元素不能有granchilds,深度
只能是0
或1
这种方法怎么样(其中$list是给定的数组):
元素可以有孙子(和更深层的后代)吗?很抱歉没有提到这一点。不,深度最大为1。非常感谢,我将使用您的解决方案,因为没有太多的记录需要迭代。
$queue=array();
foreach($list as $v){
if($v['parent_id']==0){
echo 'Item '.$v['id'];
foreach($queue as $child){
echo ': Item '.$child['id'];
}
$queue=array();
}
else {
$queue[]=$v;
}
}