Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript/php中调用具有子级的数组列表_Javascript_Php_Multidimensional Array - Fatal编程技术网

如何在javascript/php中调用具有子级的数组列表

如何在javascript/php中调用具有子级的数组列表,javascript,php,multidimensional-array,Javascript,Php,Multidimensional Array,我在如何使用javascript列出数组子项方面遇到了问题。 以下是我的php代码: $arr = array(); foreach ($categories as $key => $cat) { if($cat['parent_id'] == 0){ $arr[$cat['id']] = $cat; }else{ $arr[$cat['parent_id']][] = $cat; } } 这项研究的结果是: Array ( [1] =

我在如何使用javascript列出数组子项方面遇到了问题。 以下是我的php代码:

$arr = array();
foreach ($categories as $key => $cat) {
    if($cat['parent_id'] == 0){
    $arr[$cat['id']] = $cat;

    }else{
        $arr[$cat['parent_id']][] = $cat;
    }
}
这项研究的结果是:

Array ( 
[1] => Array (
     [id] => 1
      [parent_id] => 0
      [name] => A 
        [0] => Array (
             [id] => 2 
             [parent_id] => 1
              [name] => B 
        ) 
        [1] => Array (
            [id] => 3
            [parent_id] => 1 
            [name] => C 
         ) 
        [2] => Array (
             [id] => 4 
             [parent_id] => 1
             [name] => D
        )
 ) 
 [5] => Array (
         [id] => 5
         [parent_id] => 0
         [name] => E
            [0] => Array (
               [id] => 6
               [parent_id] => 5
               [name] => F
             ) 
             [1] => Array (
                 [id] => 7
                 [parent_id] => 5
                 [name] => G
        )
)
下面是我希望使用javascript或php创建的输出: 试试:

print_r($cat[1][name])尝试:

print_r($cat[1][name])
此函数可以优化(使用递归)以使用不同的嵌套级别


此函数可以优化(使用递归)以使用不同的嵌套级别

您当前的输出有什么问题?@SibirajPR我不知道如何像我帖子下面的图像那样显示它们。还有一个问题是,当子数组也有子数组时,它不会显示它,因为我的循环是如果($cat['parent_id']==0){$arr[$cat['id']=$cat;}当前我只检查父数组id是否等于0,仍然在寻找如何修改它的解决方案。。我希望有人能帮忙(最好在这里打印
print\r($categories)
结构。@sibrajpr这里是$categories:Array([0]=>Array([id]=>1[parent\u id]=>0[name]=>A)[1]=>Array([id]=>5[parent\u id]=>0[name]=>E)[2]=>Array([id]=>2[parent\u id]=>1[name]=>B][3]=>Array([id]=>3[parent\id]=>1[name]=>C][4]=>([id]=>4[parent\u id]=>1[name]=>D[5]=>Array([id]=>6[parent\u id]=>5[name]=>F[6]=>Array([id]=>7[parent\u id]=>5[name]=>G))您当前的输出有什么问题?@SibirajPR我不知道如何像我帖子下面的图像那样显示它们。还有一个问题是,当子数组也有子数组时,它不会显示它,因为我的循环是if($cat['parent_id']==0){$arr[$cat['id']=$cat;}目前,我只检查等于0的父项id,仍在寻找如何修改它的解决方案。我希望有人能提供帮助:(最好在这里打印
print\r($categories)
结构。@sibrajpr这里是$categories:Array([0]=>Array([id]=>1[parent\u id]=>0[name]=>A)[1]=>Array([id]=>5[parent\id]=>0[name]=>E][2]=>Array([id]=>2[parent\u id]=>1[name]=>B][3]=>Array([id]=>3[parent\u id]=>1[name]=>C][4]=>Array([id]=>4[parent\u id]=>1[name]=>D)[5]=>Array([id]=>6[parent\u id]=>5[name]=>F][6]=>Array([id]=>7[parent\u id]=>5[name]=>G]),但我过去一直打印[r]和[A]=>arra][1]但我过去常常打印r($arr[1][name]),并显示“A”
$paren_arr = array("id"=>0, "children"=>array()); // Top parent category:
foreach ($arr as $key=>$child ) {
    /*If parent of current array is TOP (parent_id==0) 
        Add to TOP parent array. (TOP['children'][] = current array)
      Else
        Walk through each children of TOP parent. (parent_id!=0)
        If child of TOP parent's ID is Parent id of current array
            Add to TOP parent->child, this array. (TOP['children']['CHILD_ID'][] = current)
    */
    if ( !is_array($param) )
        continue;

    if ( $param['parent_id']==0 ) {
        $paren_arr['children'][$param['name']] = $param;
    } else {
        foreach ( $paren_arr['children'] as $name=>$child_param ) {
            if ( $param['parent_id']==$child_param['id'] ) {
                $paren_arr['children'][$name]['children'][$param['name']] = $param;
            }
        }
    }
}