2017-02-05 5 views
0

Ich habe bereits recherchiert, aber die gefundenen Antworten haben mein Problem nicht gelöst. Ich möchte alle Benutzernamen Elemente zu "kk" ändern, aber Drucken des Arrays nachher zeigen, dass nichts geändert wurde. Was könnte falsch sein?PHP ändernden Wert des Elements in einem multidimensionalen Array

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

Es gibt nur mich:

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

Sie Änderungen an $ arr –

Antwort

2

Sie sollten es auf diese Weise getan haben:

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

Beachten Sie die & Symbol. Es gibt Ihnen die Möglichkeit, das Array zu ändern.

+0

Thaaat's es machen müssen, Dank !!!! –

1

Make auf diese Weise:

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

die reference operator & vor den $value in der Schleife verwenden, um Array-Reihe

Referenzen in PHP ist ein Mittel, um auf den gleichen Variable Inhalt von verschiedenen Namen zu bearbeiten . 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

Ich unterstütze @adwairi Lösung –

Verwandte Themen