function getParent(&$categories, $category){
foreach ($categories as &$cat){
if($category->parentId==$cat[0]->id){
$cat["subCategories"][$category->id] = array($category,"subCategories"=>array());
return $cat;
}
else if(isset($cat["subCategories"])){
$this->getParent($cat["subCategories"], $category);
}
}
}
$ categories(它的一个带有通道的列表,包含一个自我id和一个外来id)是一个列表,$ category是类别中的一个元素。
我不知道这行是什么意思$category->parentId==$cat[0]->id
为什么是[0]?为什么经常为0?你会解释整个代码吗?
答案 0 :(得分:0)
if正在检查当前类别Id是否与父ID相同,然后返回一个数组,否则它会再次运行,寻找下一个父类。
$category->parentId == $cat[0]->id
[0]是常量,因为它引用了数组的第一项,所以不是知道数组键,而是短手。
php中的数组可以有一个键$ cat ['current_id'],如果这是第一个键,它也会是$ cat [0]给出相同的结果。
$array = Array('current_id' => 55, 'title' => 'first one');
echo $array['current_id'];
echo $array[0];
if ($array['current_id'] == $array[0]){ echo 'Same'; } else { echo 'Not Same'; }
if ($array['current_id'] == $array[1]){ echo 'Same'; } else { echo 'Not Same'; }
对于键0,1,2,3 ......
,所有数组都从0开始http://php.net/manual/en/language.types.array.php#example-99