2017-02-05 9 views
0

私はすでにこれを研究しましたが、見つかった答えで問題が解決されませんでした。私はすべてのユーザー名項目を 'kk'に変更したいが、後で配列を印刷すると何も変更されていないことがわかる。何が間違っていますか?PHPが多次元配列のアイテムの値を変更する

<?php 
$myArray = Array(
    0 => Array(
     'sender' => kk, 
     'message' => hhiui, 
     'timestamp' => '2017-02-04 10:04:57', 
     'username' => '', 
     'msgtype' => 0, 
     'threadid' => 20737047302042017230457 
    ) , 
    1 => Array(
     'sender' => kk, 
     'message' => hhiui, 
     'timestamp' => '2017-02-04 10:04:57', 
     'username' => '', 
     'msgtype' => 0, 
     'threadid' => 20737047302042017230457 
    ) , 
    2 => Array(
     'sender' => kk, 
     'message' => hhiui, 
     'timestamp' => '2017-02-04 10:04:57', 
     'username' => '', 
     'msgtype' => '16', 
     'threadid' => 20737047302042017230457 
    ) 
); 

foreach($myArray as $value) 
    { 
    $value['username'] = "kk"; 
    } 

print_r($myArray); 

それはちょうど私を与える:

foreach ($myArray as &$value) 
{ 
    $value['username'] = "kk"; 
} 

お知らせ&記号:あなたはそのように行っているはずです

Array 
(
    [0] => Array 
     (
      [sender] => kk 
      [message] => hhiui 
      [timestamp] => 2017-02-04 10:04:57 
      [username] => 
      [msgtype] => 0 
      [threadid] => 2.0737047302042E+22 
     ) 

    [1] => Array 
     (
      [sender] => kk 
      [message] => hhiui 
      [timestamp] => 2017-02-04 10:04:57 
      [username] => 
      [msgtype] => 0 
      [threadid] => 2.0737047302042E+22 
     ) 

    [2] => Array 
     (
      [sender] => kk 
      [message] => hhiui 
      [timestamp] => 2017-02-04 10:04:57 
      [username] => 
      [msgtype] => 16 
      [threadid] => 2.0737047302042E+22 
     ) 

) 
Array 
(
    [2] => Array 
     (
      [sender] => kk 
      [message] => hhiui 
      [timestamp] => 2017-02-04 10:04:57 
      [username] => 
      [msgtype] => 16 
      [threadid] => 2.0737047302042E+22 
     ) 
+0

あなたはそれThaaat's $ myarrayの –

答えて

2

。それはあなたに配列を変更する能力を与えます。

+0

に変更を加える必要があり、感謝!!!! –

1

このようにします:

foreach ($myArray as $key=>$value) 
{ 
$myArray[$key]['username'] = "kk"; 
} 
2

は、PHPで

参照は 異なる名前で同じ変数コンテンツにアクセスするための手段です配列行を編集し、あなたのループ内$valuereference operator &を使用。 http://php.net/manual/en/language.references.whatare.php

<?php 
    $myArray = Array(
     0 => Array(
      'sender' =>"kk", 
      'message' => "hhiui", 
      'timestamp' => '2017-02-04 10:04:57', 
      'username' => '', 
      'msgtype' => 0, 
      'threadid' => 20737047302042017230457 
     ) , 
     1 => Array(
      'sender' => "kk", 
      'message' => "hhiui", 
      'timestamp' => '2017-02-04 10:04:57', 
      'username' => '', 
      'msgtype' => 0, 
      'threadid' => 20737047302042017230457 
     ) , 
     2 => Array(
      'sender' => "kk", 
      'message' => "hhiui", 
      'timestamp' => '2017-02-04 10:04:57', 
      'username' => '', 
      'msgtype' => '16', 
      'threadid' => 20737047302042017230457 
     ) 
    ); 

    foreach($myArray as &$value) 
    { 
      $value['username'] = "kk"; 
    } 

    print_r($myArray); 
+0

私は@adwairiソリューションをサポートしています –