Php 如何在循环中填充数组

Php 如何在循环中填充数组,php,arrays,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。请尝试: 使用[] 您需要的输出,数组'lis

我的数组是

$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。

请尝试:

使用[]


您需要的输出,数组'list'=>数组'fruits'=>苹果,'fruits'=>芒果';包含相同的键。这看起来不太好。

你想要的最终结果是不可能得到的

数组'list'=>数组'fruits'=>'苹果,'fruits'=>'芒果'

最终将永远是

数组'列表'=>数组'水果'=>'芒果';因为您在同一数组中使用了两个相同的键。 如果你不相信我,试试这个:

$arr = Array('list' => Array('fruits' => 'apple', 'fruits' => 'mango'));
var_dump($arr);
看到苹果怎么消失了吗?那是因为:

请注意,当定义两个相同的索引时,最后一个索引将覆盖第一个索引。 现在,如果您想保留所有数据并将它们合并到一个数组中,您应该将预期结果更改为:数组'list'=>array'fruits=>Array0=>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);

你到底想干什么?预期结果是什么…?您希望填充的数组看起来像什么?我尝试过,但没有插入列表数组中的值预期结果应该是数组'list'=>数组'fruits'=>'apple','fruits'=>'mango';以防万一,如果您对循环不太在意,只想将整个$arr分配给$new_arr,您可以使用$new_arr=$arr;你知道$res是一个整数吗?@Forien$resis是一个数组,而不是一个整数。返回数组中新的元素数。@Forien是的,我非常确定:预期结果应该是数组'list'=>数组'fruits'=>'apple,'fruits'=>'mango';-henedina malundrasI说我想要这样的结果$res是整数,如果你把它设置为array_pushHello,我只想把数组水果放在列表数组中,如下所示。数组'list'=>数组'fruits'=>'苹果,'fruits'=>'芒果'@好的,现在检查一下。您必须将“list”设置为数组中元素的键。可能使用变量而不是硬编码“list”和“fruits”索引;Hmmmm json encode如何。制作一个字符串并使用regix,然后反向解码并填充到列表中?
<?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
                )

        )

)
$arr = Array('list' => Array('fruits' => 'apple', 'fruits' => 'mango'));
var_dump($arr);
$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);