gpt4 book ai didi

php - 从序列化数据中解析 PHP 数组

转载 作者:行者123 更新时间:2023-12-01 04:29:36 25 4
gpt4 key购买 nike

我正在使用 http://mjsarfatti.com/sandbox/nestedSortable/ 中的 jQuery 插件它在轻松对列表进行排序方面做得非常出色,但我在将其保存为数据库并将其加载回来时遇到了问题。

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

a:1:{s:4:"页面";a:4:{i:4;s:4:"根";i:2;s:1:"4";i: 3;s:1:"2";i:1;s:1:"2";}}

将其从数据库中拉回,反序列化并执行我拥有的 var_export

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>

但一旦完成,它将变得巨大,可能有 4-5 层深。

提前致谢!

最佳答案

这应该会让你上路:

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']);

关于php - 从序列化数据中解析 PHP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com