现在这里是代码:
$men = array(
array('name'=>'NO.1', 'age' => 11),
array('name'=>'NO.2', 'age' => 22),
array('name'=>'NO.3', 'age' => 33),
);
$result = array();
echo '<pre>';
foreach($men as $value){
$result[] = $value;
$result[]['gender'] = 'M';
}
unset($arr1);
var_dump($result);
但似乎有些不对劲,我想得到的是......
$result = array(
array('name'=>'NO.1', 'age' => 11, 'gender' => 'M'),
array('name'=>'NO.2', 'age' => 22, 'gender' => 'M'),
array('name'=>'NO.3', 'age' => 33, 'gender' => 'M'),
);
我该如何解决?任何人都可以告诉我,谢谢。
答案 0 :(得分:3)
你应该这样做:
foreach($men as $value){
$value['gender'] = 'M';
$result[] = $value;
}
答案 1 :(得分:0)
试试这个:
$men = array(
array('name'=>'NO.1', 'age' => 11),
array('name'=>'NO.2', 'age' => 22),
array('name'=>'NO.3', 'age' => 33),
);
$result = array();
foreach($men as $key=>$value){
$thisMen = $men[$key];
$thisMen['gender'] = 'M';
$result[] = $thisMen;
}
var_dump($result);
您还可以通过执行类似
的操作来避免额外的$ thisMen变量for($i=0;$i<count($men);$i++){
$result[] = $men[$i];
$result[$i]["gender"] = 'M';
}
或者,只需引用原始数组值并更改它们,如下所示
foreach($men as &$thisMen)
$thisMen["gender"] = 'M';
晒。
答案 2 :(得分:0)
你可以这样做:
$newArray = array();
foreach($men as $value){
$result[] = $value;
$result['gender'] = 'M';
$newArray[] = $result;
}
$men = $newArray;
unset($newArray);
答案 3 :(得分:0)
<?php
$men = array(
array('name'=>'NO.1', 'age' => 11),
array('name'=>'NO.2', 'age' => 22),
array('name'=>'NO.3', 'age' => 33),
);
$result = array();
echo '<pre>';
foreach($men as $value){
$result[] = array_merge($value, array('gender' => 'M'));
}
unset($arr1);
var_dump($result);
?>
答案 4 :(得分:0)
而不是
foreach($men as $value){
$result[] = $value;
$result[]['gender'] = 'M';
}
使用
foreach($men as $value){
$value['gender'] ='M';
array_push($result, $value);
}
这将循环遍历每个内部数组,将gender
字段添加到每个数组并将它们推送到$result
数组。
使用此方法,原始$men
数组保持不变。
但是,如果您也希望更改原始数组,可以在&
循环上的$value
之前添加&符号(foreach
),这将使用引用内部数组创建副本。这可以按如下方式完成。
foreach($men as &$value){
$value['gender'] ='M';
array_push($result, $value);
}