Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
在php中从一维数组创建嵌套的父子数组_Php_Arrays - Fatal编程技术网

在php中从一维数组创建嵌套的父子数组

在php中从一维数组创建嵌套的父子数组,php,arrays,Php,Arrays,我有两个数组 第一个阵列: $array = array( 'a' => 'b', 'b' => 'c', 'c' => 'd', ); 第二个阵列: $array = Array ( [a] => Array ( [0] => b [1] => h ) [b] => c

我有两个数组

第一个阵列:

$array = array( 
   'a' => 'b',
   'b' => 'c',
   'c' => 'd',
);
第二个阵列:

 $array =  Array
    (
        [a] => Array
            (
                [0] => b
                [1] => h
            )

        [b] => c
        [c] => d
        [h] => m
    )
我需要像这样改变这个数组

第一个阵列:

Array
(
    [a] => Array
        (
            [b] => Array
                (
                    [c] => Array
                        (
                            [d] => d
                        )

                )

        )

)
第二个阵列:

Array
(
    [a] => Array
        (
            [b] => Array
                (
                    [c] => Array
                        (
                            [d] => Array
                                (
                                )

                        )

                )

            [h] => Array
                (
                    [m] => Array
                        (
                        )

                )

        )

)
sirwilliam的回答帮助解决了第一个阵列问题。我需要它来制作多维数组。帮助解决问题。提前感谢

您可以尝试使用&(参考资料):

PHP:
    $array = array( 
       'a' => 'b',
       'b' => 'c',
       'c' => 'd',
    );

    $newArray = array();
    $newArray[key($array)] = array();
    $part = &$newArray;

    foreach($array as $first => $second){
        $part = &$part[$first];
        $part[$second] = array();
    }

    echo "<pre>";
    print_r($newArray);
    echo "</pre>";

?>

然后,您可以为最后一部分创建一个循环。

以及您所尝试的。@Uchiha我尝试使用array_walk_recursive并使用这个函数myfunction($products,$value){foreach($products as$key=>$products){if($products===$value){return$key;}else{return return$products;}}但是,
$value
结束了什么here@Jegan您不应该在注释中发布代码,您应该编辑您的问题。@Uchiha刚刚在foreach循环中传递了数组值。这总是从索引“a”开始。。。这是期望的行为吗?如果树上有
'cat'=>,
?@sirwilliam,如果我有多维数组呢?。如果你有新问题问新问题,你能帮我吗
Array
(
    [a] => Array
        (
            [b] => Array
                (
                    [c] => Array
                        (
                            [d] => Array
                                (
                                )

                        )

                )

        )

)