Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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/4/algorithm/10.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_Push - Fatal编程技术网

php将数组放入数组中

php将数组放入数组中,php,arrays,push,Php,Arrays,Push,我想在一个数组中推送一些项目,结构如下: $str = 'String'; $a = array('some', 'sub', 'page'); 我想将项目推送到其他数组中,该数组应为: Array ( [some] => Array ( [sub] => Array ( [page] => String ) ) ) 我不知道如何确切地解释它,所以希望这个例子能给你一些启示。 我希望将第一个数组(a)中的任何新元素作为上

我想在一个数组中推送一些项目,结构如下:

$str = 'String';
$a = array('some', 'sub', 'page');
我想将项目推送到其他数组中,该数组应为:

Array (
   [some] => Array (
      [sub] => Array (
         [page] => String
      )
   )
)
我不知道如何确切地解释它,所以希望这个例子能给你一些启示。 我希望将第一个数组(a)中的任何新元素作为上一个数组的子数组推送,最后一个数组的值为$str

$string = 'My Value';
$my_first_array = array('my', 'sub', 'arrays');
然后使用一些函数解析$my_first_数组并将其作为以下内容传输:

例如:

ob_start('nl2br');
$my_parsed_sub_array = parse_sub_arrays($my_first_array, $string);
print_r($my_parsed_sub_array);
==>>>

Array (
   [my] => Array (
      [sub] => Array (
         [arrays] => String
      )
   )
)
[编辑]我希望,这一次,我理解了这个问题

如果您的字符串和数组如下所示:

$str = 'test';
$a = array('some', 'sub', 'page');
您可以首先以这种方式初始化结果数组,处理最后一项的特殊情况:

$arr = array($a[count($a)-1] => $str);
然后,您可以在
$a
数组的每个项目上循环,从末尾开始(而不是最后一个项目,我们已经处理过了):

使用此方法,转储生成的数组:

var_dump($arr);
你应该得到预期的结果:

array
  'some' => 
    array
      'sub' => 
        array
          'page' => string 'test' (length=4)


在理解问题之前,请先回答下面的旧答案:

可以通过以下方式声明数组:

$arr = array(
    'some' => array(
        'sub' => array(
            'page' => $str, 
        ), 
    ), 
);

或者,使用几个不同的步骤(可能更容易,具体取决于构建子阵列的方式,尤其是在比当前示例更复杂的情况下):


不,不,你不明白。我想做一些算法,将第一个数组(a)解析为子数组,最后一个从$a解析为$str。我想通过代码自动生成,而不是手动生成。这很复杂,对不起,我不能说得更好。我会在第一篇文章中更好地解释它,不是这样。哦;对不起,我不太明白这个问题:-(@Alex我已经编辑了我的答案,希望我能更好地理解这个问题:-)
$arr = array(
    'some' => array(
        'sub' => array(
            'page' => $str, 
        ), 
    ), 
);
$sub2 = array('page' => $str);
$sub1 = array('sub' => $sub2);
$arr = array('some' => $sub1);