2012-02-19 25 views
2

foreachで配列のメンバの値を設定する方法はありますか?foreachループ内でメンバ値を設定する方法

<? 
    $arr = array(0=>'a',1=>'b',2=>'c',3=>'d'); 

    foreach($arr as $key => $value){ 
    $value = 'a'; 
    } 

    var_dump($arr); 
?> 

リターン:

array(4) { 
    [0]=> 
    string(1) "a" 
    [1]=> 
    string(1) "b" 
    [2]=> 
    string(1) "c" 
    [3]=> 
    string(1) "d" 
} 

私はそれを返すために取得しようとしていますがされています。ここで私が使用していたcodepadへのリンクです

array(4) { 
     [0]=> 
     string(1) "a" 
     [1]=> 
     string(1) "a" 
     [2]=> 
     string(1) "a" 
     [3]=> 
     string(1) "a" 
    } 

http://codepad.org/FQpPYFtz

+0

+1、完全な最小限と有効に抽象化されたサンプルを提供するため。もっと多くの人がこのようにするべきです。 – Tomalak

答えて

3
$arr = array(0=>'a',1=>'b',2=>'c',3=>'d'); 

foreach($arr as $key => &$value) { // <-- use reference to $value 
    $value = 'a'; 
} 

var_dump($arr); 
+1

正確に私が探していたクイックフィックス。私はこの参照事を理解するためにもっと努力する必要があるように見えます。これを私に指摘してくれてありがとう! –

3

それは非常に簡単です:

foreach ($data as $key => $value) { 
    $data[$key] = 'new value'; 
} 
関連する問題