Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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数组_Php_Jquery_Arrays_Nested_Jquery Ui Sortable - Fatal编程技术网

从序列化数据解析PHP数组

从序列化数据解析PHP数组,php,jquery,arrays,nested,jquery-ui-sortable,Php,Jquery,Arrays,Nested,Jquery Ui Sortable,我正在使用来自的jQuery插件 它在轻松排序列表方面做得非常好,但我在将其保存为DB并加载备份时遇到了问题 我的问题是,一旦你把数组放到PHP中,序列化并存储到数据库中,你最终会得到类似于 a:1:{s:4:page;a:4:{i:4;s:4:root;i:2;s:1:4;i:3;s:1:2;i:1;s:1:2;} 将其从数据库中拉回来,取消序列化并执行我所拥有的var_导出 array('page'=>array(1=>'root',3=>'root',2=>'3',4=>'root',),

我正在使用来自的jQuery插件 它在轻松排序列表方面做得非常好,但我在将其保存为DB并加载备份时遇到了问题

我的问题是,一旦你把数组放到PHP中,序列化并存储到数据库中,你最终会得到类似于

a:1:{s:4:page;a:4:{i:4;s:4:root;i:2;s:1:4;i:3;s:1:2;i:1;s:1:2;}

将其从数据库中拉回来,取消序列化并执行我所拥有的var_导出

array('page'=>array(1=>'root',3=>'root',2=>'3',4=>'root',),)

然后如何遍历该数组并确保每个子数组都正确嵌套? 输出应该在无序列表中,如

page_1
page_3
 - page_2
Page_4
或者用真实代码

<ul>
  <li id="page_1">Page 1</li>
  <li id="page_3">Page 3
    <ul>
      <li id="page_2>Page 2</li>
    </ul>
  </li>
  <li id="page_4">Page 4</li>
</ul>
    第1页 第3页

      这会让你走上正轨:

      function display_page_listings($arr, $parent = 'root')
      {
          if($parent == 'root')
          {
              echo '<ul>';
          }
          $displayed = false;
          foreach($arr as $item_index => $item_parent)
          {
              if($item_parent == $parent)
              {
                  if(!$displayed && $parent != 'root')
                  {
                      echo '<ul>';
                      $displayed = true;
                  }
                  echo '<li id="page_' . $item_index . '">Page ' . $item_index;
                  display_page_listings($arr, $item_index);
                  echo '</li>';
              }
          }
          if($parent == 'root' || $displayed)
          {
              echo '</ul>';
          }
      }
      
      $arr = array(
          'page' => array ( 1 => 'root', 3 => 'root', 2 => '3', 4 => 'root')
      );
      
      display_page_listings($arr['page']);
      
      函数显示\u页面\u列表($arr,$parent='root')
      {
      如果($parent=='root')
      {
      回声“
        ”; } $displated=false; foreach($arr作为$item\u索引=>$item\u父项) { 如果($item_parent==$parent) { 如果(!$displayed&&$parent!='root') { 回声“
          ”; $displated=true; } echo'
        • page.$item\u index; 显示页面列表($arr,$item\u索引); 回音“
        • ”; } } 如果显示($parent=='root'| |$) { 回声“
        ”; } } $arr=数组( '页面'=>数组(1=>'根',3=>'根',2=>'3',4=>'根') ); 显示页面列表($arr['page']);
      请g-d,不要告诉我您正在数据库中存储序列化数据。请如果有更好的存储大型阵列的方法,请随时提供建议!:-)如果只是存储和调节数据,那么序列化格式通常是可以接受的。如果您需要使用该结构并高效地存储它,我建议您设置树:通过一些调整来实际匹配我所需的输出,这个脚本效果非常好!谢谢