你如何填充内部循环数组

时间:2014-12-10 14:10:10

标签: php arrays

我的数组是

$new_arr = array('list');
$arr = Array(0 => Array( 'fruits' => 'apple'),1 => Array( 'fruits' => 'mango'));

foreach($arr as $key => $val){
  $res = array_fill($new_arr,$val);
}

print_r($new_arr);

它只填充索引1

4 个答案:

答案 0 :(得分:0)

尝试array_push()

$new_arr = array('list');
$arr = Array(0 => Array( 'fruits' => 'apple'),1 => Array( 'fruits' => 'mango'));

foreach($arr as $key => $val){
    $res = array_push($new_array,$val);
}

Print_r($res);

答案 1 :(得分:0)

使用[]

$new_arr = array('list'=>array());
$arr = Array(0 => Array( 'fruits' => 'apple'),1 => Array( 'fruits' => 'mango'));

foreach($arr as $key => $val){
  $new_arr['list'][] = $val;
}

Print_r($new_arr);

答案 2 :(得分:0)

<?php

$new_arr = array();
$arr = Array(0 => Array( 'fruits' => 'apple'),1 => Array( 'fruits' => 'mango'));
foreach($arr as $key => $val)
{
 $new_arr['list']['fruits'][] =$val['fruits'];
}


print_r($new_arr);

这会给你

Array
(
    [list] => Array
        (
            [fruits] => Array
                (
                    [0] => apple
                    [1] => mango
                )

        )

)

您需要的输出Array('list' => Array('fruits' => 'apple,'fruits' => 'mango'));包含相同的键。这看起来不太好。

答案 3 :(得分:0)

无法获得您想要的最终结果。

Array('list' => Array('fruits' => 'apple,'fruits' => 'mango'));

总是最终成为

Array('list' => Array('fruits' => 'mango'));因为您在同一个数组中使用了两个相同的键。 如果你不相信我,试试这个:

$arr = Array('list' => Array('fruits' => 'apple', 'fruits' => 'mango'));
var_dump($arr);

看看苹果是如何消失的?那是因为http://php.net/manual/en/function.array.php

  
      
  1. 请注意,当定义了两个相同的索引时,最后一个索引覆盖第一个索引。
  2.   

现在,如果您想保留所有数据并将它们合并为1个数组,则应将预期结果更改为:Array('list' => Array('fruits => Array(0 => 'apple', 1 => 'mango')));

实现这一结果的一种方法是:

$tmp_arr = array();
$arr = Array(0 => Array( 'fruits' => 'apple'),1 => Array( 'fruits' => 'mango'));
foreach($arr as $sub){
    foreach($sub as $key=>$val) {
        if (!array_key_exists($key, $tmp_arr))
            $tmp_arr[$key] = array();
        $tmp_arr[$key][] = $val;
    }
}
$new_arr = array('list'=>$tmp_arr);
print_r($new_arr);