Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组到有序&;嵌套HTML列表_Php_Jquery_Arrays_List_Nested Sortable - Fatal编程技术网

PHP数组到有序&;嵌套HTML列表

PHP数组到有序&;嵌套HTML列表,php,jquery,arrays,list,nested-sortable,Php,Jquery,Arrays,List,Nested Sortable,我正在一个项目中使用jQuery。移动列表项时,我序列化数组并将其保存到数据库中。从PHP数组中重新创建HTML列表时遇到问题。可能是因为时间晚了 我有以下PHP数组: Array ( [list_4] => root [list_3] => 4 [list_1303966373] => 3 [list_1] => 1303966373 [list_5] => 1 [list_2] => 1 [list_

我正在一个项目中使用jQuery。移动列表项时,我序列化数组并将其保存到数据库中。从PHP数组中重新创建HTML列表时遇到问题。可能是因为时间晚了

我有以下PHP数组:

Array
(
    [list_4] => root
    [list_3] => 4
    [list_1303966373] => 3
    [list_1] => 1303966373
    [list_5] => 1
    [list_2] => 1
    [list_6] => root
)
它应该列一个类似于

<ol>
<li id='list_4'>value 4
  <ol>
    <li id='list_3'>value 3
      <ol>
        <li id='list_1303966373'>value 1303966373
          <ol>
            <li id='list_1'>value 1
              <ol>
                <li id='list_5'>value 5</li>
                <li id='list_2'>value 2</li>
              </ol>
            </li>
          </ol>
        </li>
      </ol>
    </li>
  </ol>
</li>
<li id='list_6'>value 6</li>          
</ol>

  • 值4
  • 值3
  • 值1303966373'>
  • 值1
  • 值5
  • 值2
  • 值6
  • (忽略这些值,它们只是为了显示。)

    HTML列表可以有任何深度的嵌套列表

    我的大脑已经死了,我无法让它工作。有人有什么建议吗?我将永远欠你饼干。还有一座城堡

    谢谢。:)

    这是您的产品(使用您的样品测试正常):

    这是您的产品(使用您的样品测试正常):


    这不是问题的重点,但您可能想研究其他方法将此类列表保存到数据库中。请不要以数字开始id,它会让婴儿哭泣(请参见文档中的内容)嘿,伙计们,这真的只是为了作秀。实际列表的ID前面有“list_uu”字样。我会编辑前男友,让宝宝感觉更好。:)@这是真的。解决此问题后,我打算将父id与用于保存每个
  • 项信息的“值”表的每一行一起保存。不过我还是会遇到这个问题,所以我想我应该先过这座桥。@Dylan-你为什么不试试这个…?这不是问题的重点,但你可能想研究其他方法将这样的列表保存到你的数据库中。请不要以数字开始id,它会让婴儿哭泣(见文档中的“甚至”),那真的只是作秀而已。实际列表的ID前面有“list_uu”字样。我会编辑前男友,让宝宝感觉更好。:)@这是真的。解决此问题后,我打算将父id与用于保存每个
  • 项信息的“值”表的每一行一起保存。不过我还是会遇到这个问题,所以我想我应该先过桥。@Dylan-你为什么不试试这个…?我想你可能就是bomb.com。谢谢谢谢谢谢!!我想你可能就是炸弹。谢谢谢谢谢谢!!
    <?php
      $tree = array(
        "list_4" => "root",
        "list_3" => "list_4",
        "list_1303966373" => "list_3",
        "list_1" => "list_1303966373",
        "list_5" => "list_1",
        "list_2" => "list_1",
        "list_6" => "root",
     );
     function getChildrenLists($tree){
        $tree2 = array();
        foreach($tree as $child => $parent){
           if(!array_key_exists($parent, $tree2)) $tree2[$parent] = array();
           $tree2[$parent][] = $child;
        }
        return $tree2;
     }
    
     function renderTree($tree2, $parent = "root"){
        if($parent != "root") echo "<li id='$parent'> value $parent\n";
        $children = $tree2[$parent];
        if(count($children) > 0){ //If node has children
           echo "<ol>\n";
           foreach($children as $child)
              renderTree($tree2, $child);
           echo "</ol>\n";
        }
        if($parent != "root") echo "</li>\n";
     }
     $tree2 = getChildrenLists($tree); 
     renderTree($tree2);
    
    ?>