2011-10-26 9 views
0

が今ここにコードです:この配列に要素を追加する方法は?

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

のですか?誰でも私に教えてくれます、ありがとう。

答えて

3

があなたの代わりにこれを行う必要があります。

foreach($men as $value){ 
    $value['gender'] = 'M'; 
    $result[] = $value; 
} 
+0

ありがとう^^ – shawjia

0

これを試してください:あなたはまた、

for($i=0;$i<count($men);$i++){ 
    $result[] = $men[$i]; 
    $result[$i]["gender"] = 'M'; 
} 

など何かをすることによって、余分な$ thisMen変数を避けることができ

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

、単に元の配列の値を参照して

を次のように、それらを変更します
foreach($men as &$thisMen) 
    $thisMen["gender"] = 'M'; 

シャイ。

0

あなたは行うことができます:

$newArray = array(); 
foreach($men as $value){ 
    $result[] = $value; 
    $result['gender'] = 'M'; 
    $newArray[] = $result; 
} 
$men = $newArray; 
unset($newArray); 
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); 
?> 
0

代わりの

foreach($men as $value){ 
    $result[] = $value; 
    $result[]['gender'] = 'M'; 
} 

使用

foreach($men as $value){ 
    $value['gender'] ='M'; 
    array_push($result, $value); 
} 

これは各内側配列をループし、genderフィールドをそれぞれに追加し、$result配列にプッシュします。

この方法では、元の$men配列は変更されません。あなたにも元の配列を変更したい場合は

しかし、あなただけのコピーを作成する上で、内部の配列への参照を使用しますforeachループ上$valueの前にアンパサンド(&)を追加することができます。これは次のようにして行うことができます。

foreach($men as &$value){ 
    $value['gender'] ='M'; 
    array_push($result, $value); 
}