Php 从数组+;对象
我有这样的数组+对象Php 从数组+;对象,php,arrays,nested-loops,Php,Arrays,Nested Loops,我有这样的数组+对象 Array ( [0] => stdClass Object ( [tid] => 1 [parent_id] => 0 [language] => th [t_type] => category [t_name] => cat1 [t_description] =>
Array
(
[0] => stdClass Object
(
[tid] => 1
[parent_id] => 0
[language] => th
[t_type] => category
[t_name] => cat1
[t_description] =>
[t_uri] => cat1
[t_uri_encoded] => cat1
[t_uris] =>
[meta_title] =>
[meta_description] =>
[meta_keywords] =>
[childs] => Array
(
[0] => stdClass Object
(
[tid] => 3
[parent_id] => 1
[language] => th
[t_type] => category
[t_name] => cat1.1
[t_description] =>
[t_uri] => cat1.1
[t_uri_encoded] => cat1.1
[t_uris] =>
[meta_title] =>
[meta_description] =>
[meta_keywords] =>
[childs] => Array
(
[0] => stdClass Object
(
[tid] => 5
[parent_id] => 3
[language] => th
[t_type] => category
[t_name] => cat1.1.1
[t_description] =>
[t_uri] => cat1.1.1
[t_uri_encoded] => cat1.1.1
[t_uris] =>
[meta_title] =>
[meta_description] =>
[meta_keywords] =>
)
)
)
[1] => stdClass Object
(
[tid] => 4
[parent_id] => 1
[language] => th
[t_type] => category
[t_name] => cat1.2
[t_description] =>
[t_uri] => cat1.2
[t_uri_encoded] => cat1.2
[t_uris] =>
[meta_title] =>
[meta_description] =>
[meta_keywords] =>
)
)
)
[1] => stdClass Object
(
[tid] => 2
[parent_id] => 0
[language] => th
[t_type] => category
[t_name] => cat2
[t_description] =>
[t_uri] => cat2
[t_uri_encoded] => cat2
[t_uris] =>
[meta_title] =>
[meta_description] =>
[meta_keywords] =>
)
)
此数组+json字符串中的对象
[{"tid":"1","parent_id":"0","language":"th","t_type":"category","t_name":"cat1","t_description":null,"t_uri":"cat1","t_uri_encoded":"cat1","t_uris":null,"meta_title":null,"meta_description":null,"meta_keywords":null,"childs":[{"tid":"3","parent_id":"1","language":"th","t_type":"category","t_name":"cat1.1","t_description":null,"t_uri":"cat1.1","t_uri_encoded":"cat1.1","t_uris":null,"meta_title":null,"meta_description":null,"meta_keywords":null,"childs":[{"tid":"5","parent_id":"3","language":"th","t_type":"category","t_name":"cat1.1.1","t_description":null,"t_uri":"cat1.1.1","t_uri_encoded":"cat1.1.1","t_uris":null,"meta_title":null,"meta_description":null,"meta_keywords":null}]},{"tid":"4","parent_id":"1","language":"th","t_type":"category","t_name":"cat1.2","t_description":null,"t_uri":"cat1.2","t_uri_encoded":"cat1.2","t_uris":null,"meta_title":null,"meta_description":null,"meta_keywords":null}]},{"tid":"2","parent_id":"0","language":"th","t_type":"category","t_name":"cat2","t_description":null,"t_uri":"cat2","t_uri_encoded":"cat2","t_uris":null,"meta_title":null,"meta_description":null,"meta_keywords":null}]
如何创建这样的嵌套ul li。
<ul>
<li>cat1
<ul>
<li>cat1.1
<ul>
<li>cat1.1.1</li>
</ul>
</li>
<li>cat1.2</li>
</ul>
</li>
<li>cat2</li>
</ul>
- 第一类
- cat1.1
- cat1.1.1
- 第1.2类
- 第二类
这就是我尝试过的
echo list_nested_cat( $list_item );
function list_nested_cat( $list_item, $start = 0) {
echo '<ul style="margin-left: 1em;">';
foreach ( $list_item as $item ) {
if ( isset( $item->childs ) && is_array( $item->childs ) ) {
echo '<li>'.$item->t_name.'</li>';
list_nested_cat($item->childs);
} else {
echo '<li>'.$item->t_name.'</li>';
}
}
echo '</ul>';
}
echo list_嵌套_cat($list_item);
函数列表嵌套类($list\u item,$start=0){
echo';
foreach($将项目列为$项目){
if(isset($item->childs)和&is_数组($item->childs)){
回显“- ”.$item->t_name.
”;
列出嵌套类($item->childs);
}否则{
回显“- ”.$item->t_name.
”;
}
}
回声“
”;
}
但此函数响应错误的html嵌套ul li格式
注:我使用arnaud576875代码创建数组对象
这应该让您开始: 它使用递归函数;它自称 已更新 使用JSON对象进行了测试,并修复了一些错误
<?php
echo make_ulli($object);
function make_ulli($array){
if(!is_array($array)) return '';
$output = '<ul>';
foreach($array as $item){
$output .= '<li>' . $item->t_name;
if(property_exists($item, 'childs'))
$output .= make_ulli($item->childs);
$output .= '</li>';
}
$output .= '</ul>';
return $output;
}
?>
请将那个难看的数组作为JSON字符串发布以供测试之用?@iambriansreed我按照您的要求发布了JSON字符串。@vee我用它来测试我的代码并修复了一些错误。查看发布的更新代码。这真的很有效。谢谢。:-)