我看到了其他关于这个问题的提问,但并不完全像我的情况。我在MySQL中有以下表:
term_id name slug taxonomy parent
1 Entry Form entry-form format 0
2 Page page format 3
3 Facebook facebook format 0
4 Entry Form facebook-entry-form format 3
5 Twitter twitter format 0
6 Single single format 2
我有以下的OBJECT查询:
$formats = $wpdb->get_results($wpdb->prepare("
SELECT * FROM table t
WHERE t.taxonomy = 'format'
"));
我得到了以下数组:
Array ( [0] => stdClass Object ( [term_id] => 1 [name] => Entry Form [slug] => entry-form [taxonomy] => format [parent] => 0 ) [2] => stdClass Object ( [term_id] => 2 [name] => Page [slug] => page [taxonomy] => format [parent] => 3 ) [3] => stdClass Object ( [term_id] => 3 [name] => Facebook [slug] => facebook [taxonomy] => format [parent] => 0 ) [4] => stdClass Object ( [term_id] => 4 [name] => Entry Form [slug] => entry-form-facebook [taxonomy] => format [parent] => 3 ) [5] => stdClass Object ( [term_id] => 5 [name] => Twitter [slug] => twitter [taxonomy] => format [parent] => 0 ) [6] => stdClass Object ( [term_id] => 6 [name] => Single [slug] => single [taxonomy] => format [parent] => 2 ) ) 1
所有上述内容需要转换成分层列表输出,看起来像这样:
Entry Form
Twitter
Facebook
- Entry Form
- Page
-- Single
因此,我需要根据父字段将数组$ formats转换为分层数组。 0的父项表示它是顶级项目。 因此,由于Single具有父级2,因此它是Page的子项,后者又具有父级3并且是Facebook的子项。
谁能帮助我将我的数组转换为分层数组,然后向我展示如何通过循环进行输出?