如何在这个数组中添加元素?

时间:2011-10-26 09:07:36

标签: php arrays

现在这里是代码:

$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'),
);

我该如何解决?任何人都可以告诉我,谢谢。

5 个答案:

答案 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);
}