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);