如何替换数组键的值?

时间:2016-12-13 17:51:56

标签: php arrays array-key

我的数组如下var_dump($user_jason)所示:

'Gustav' => 
    array (size=9)
      'sum' => int 8
      'votes' => string '3' (length=1)
      'links' => null
      'comments' => string '2' (length=1)
      'topnews' => null
      'revisions' => string '3' (length=1)
      'translations' => null
      'skipped' => null
      'firstvotes' => null
  '' => 
    array (size=9)
      'sum' => int 6
      'votes' => null
      'links' => string '3' (length=1)
      'comments' => null
      'topnews' => string '3' (length=1)
      'revisions' => null
      'translations' => null
      'skipped' => null
      'firstvotes' => null
'Dennis' => 

现在我的密钥是空的我试图将该密钥设置为“匿名”,但我不知道如何实现这一点。我想尝试如下:

foreach ($user_jason as $key => $value) {

      if(empty($key)){
         if(empty($key)){
          unset($user_jason['']);
          $key = "anonouymus";
          $user_jason[$key] = $value;
       }

      }
    }

但它仍然是空的,请建议我该怎么做。很抱歉,问这可能很容易,但我正在尝试,但无法实现这一目标。

谢谢!

2 个答案:

答案 0 :(得分:2)

代码

$user_jason[$key] = $value; 

并不意味着您的空键将替换为某个值。

此代码表示将向您的$user_jason数组添加新密钥$key,之前的密钥(空密钥)仍将在您的数组中。您可以使用unset取消设置:

unset($user_jason['']);

答案 1 :(得分:2)

不需要循环:

if(isset($user_jason[''])) {
    $user_jason['anonymous'] = $user_jason[''];
}
unset($user_jason['']);