Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 (size=3) 0 => string 'Level' (length=5) 1 => string 'Sub' (length=3) 2 => string 'Item' (length=4) 现在我想把这个数组转换成: array (size=1) 'Level' => array (size=1) 'Sub' => array (size=1) 'Ite

我有一个数组:

array (size=3)
  0 => string 'Level' (length=5)
  1 => string 'Sub' (length=3)
  2 => string 'Item' (length=4)
现在我想把这个数组转换成:

array (size=1)
  'Level' => 
    array (size=1)
      'Sub' => 
        array (size=1)
          'Item' => 
            array (size=0)
              ...
然后我要将此“转换”数组与此数组“合并”:

array (size=1)
  'Level' => 
    array (size=1)
      'Sub' => 
        array (size=1)
          'AnotherItem' => 
            array (size=0)
              ...
结果应该如下所示:

array (size=1)
  'Level' => 
    array (size=1)
      'Sub' => 
        array (size=2)
          'Item' => 
            array (size=0)
              ...
          'AnotherItem' => 
            array (size=0)
              ...
我还希望能够将此结果与另一个“转换”数组“合并”。 我现在花了两个多小时试图自己找到一个解决方案,但现在我的大脑崩溃了-


提前谢谢大家的帮助

如果向后循环数组,则可以通过使新数组=上一项是什么来构建数组

然后使用array\u merge\u recursive合并两个数组

$arr = ['level', 'sub', 'item'];
$arr = array_reverse($arr);
$new =[];

// Rebuild the array
foreach($arr as $key => $item){
    if($key ==0){
        $new = [$item => []];
    }else{
        $new = [$item => $new];
    }
}

// Your other array:
$other = array (
  'level' => 
  array (
    'sub' => 
    array (
      'AnotherItem' => 
      array (
      ),
    ),
  ),
);

// Merge the two
$new = array_merge_recursive($new, $other);

var_export($new);
输出:

array (
  'level' => 
  array (
    'sub' => 
    array (
      'item' => 
      array (
      ),
      'AnotherItem' => 
      array (
      ),
    ),
  ),
)

你试过什么?发你的密码。实际上,我什么也没试过。我只是无法想象它到底是如何工作的。那么,你需要阅读PHP中的数组并首先尝试一些东西。有很多例子。我们是来帮忙的,但你要做这项工作。如果你想成为任何语言的程序员,你都需要知道如何操作数组。