2016-10-05 7 views
0

を使用してクエリ結果から値を変更:

:私はClassCountの値を変更するのforeach内で使用

Array 
(

    [0] => Array 
    (
     [assign_id] => 302 
     [ClassCount] => 25 
    ) 

    [1] => Array 
    (
     [assign_id] => 303 
     [ClassCount] => 25 
    ) 

    [2] => Array 
    (
     [assign_id] => 325 
     [ClassCount] => 25 
    ) 

) 

foreach ($assignmentsViewList as $task) { 
    $task['ClassCount'] = 2; 
} 

動作しません。しかし、私がこれを試してみると:

$assignmentsViewList[0]['ClassCount']=2; 

コードはうまくいきます。しかし、foreachループの内側で動作する必要があります。

+0

正確にここで達成しようとしていることはありますか? 'ClassCount'の値をすべて更新しますか?またはただ一つ? –

+0

すべてのClassCount値を変更しています。 –

+0

私の答えを見てください。あなたの目的を解決するはずです。 –

答えて

2

ループ内の配列要素を直接変更できるようにするには、$ taskの前に&を付けます。その場合、値は参照によって割り当てられます。

参考:

foreach ($assignmentsViewList as &$task) { 
    $task['ClassCount'] = 2; /* It will overwrite all 'ClassCount' values to 2 */ 
} 
+0

私はこの前に '&'を見ましたが、修正するときにこれが必要であることはわかりませんでした。ありがとうございました。 –

1

use &PHP foreach()

これを試してみてください。

その手段は、そのあなたの配列を上書きしないvalue.so配列のコピーの上にその反復を意味&せずに配列&$task

foreach ($assignmentsViewList as &$task) 
{ 
    $task['ClassCount'] = 2; values of array 
} 

の実際の値への参照を繰り返し処理しました。

take a look in documentation

関連する問題