Home  >  Article  >  Backend Development  >  php判断数组有关问题

php判断数组有关问题

WBOY
WBOYOriginal
2016-06-13 12:06:32878browse

php判断数组问题

本帖最后由 hxlb520 于 2014-09-19 08:53:23 编辑 我想在foreach()循环中只显示没有下级的大栏目(例如只显示代码中的大栏目一,大栏目四),有下级栏目的不显示 ,如何判断呢?

cid=栏目ID,name=栏目名称,parent_cid=子栏目的上级栏目ID

{"seller_cat":[
{"cid":"1","name":"大栏目一","parent_cid":"0"},
{"cid":"2","name":"大栏目二","parent_cid":"0"},
{"cid":"3","name":"子栏目二","parent_cid":"2"},
{"cid":"4","name":"子栏目三","parent_cid":"2"},
{"cid":"5","name":"大栏目三","parent_cid":"0"},
{"cid":"6","name":"子栏目一","parent_cid":"5"},
{"cid":"7","name":"大栏目四","parent_cid":"0"}
]}}
------解决思路----------------------
类方法,可以参考下。
$a = json_decode($s);<br />$ar = array();<br />foreach($a->seller_cat as $t) {<br />  if($t->parent_cid == 0 && ! array_filter($a->seller_cat, array(new T($t->cid), 'filter')))<br />    $ar[] = $t->name;<br />}<br />print_r($ar);<br />class T {<br />        private $cid;<br /><br />        function __construct($cid) {<br />                $this->cid = $cid;<br />        }<br /><br />        function filter($v) {<br />                return $v->parent_cid == $this->cid;<br />        }<br />}

------解决思路----------------------
foreach($a->seller_cats->seller_cat as $t) {
  if($t->parent_cid == 0 && ! array_filter($a->seller_cats->seller_cat, array(new T($t->cid), 'filter')))
    $ar[] = $t->name;
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn