【问题标题】:How to replace value of array key?如何替换数组键的值?
【发布时间】:2017-04-28 21:27:21
【问题描述】:

我的数组在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;
       }

      }
    }

但它仍然是空的,请建议我该怎么做。很抱歉问这可能很容易,但我正在努力但无法做到这一点。

谢谢!

【问题讨论】:

  • 空键在数组中,但也添加了新键。使用 unset 函数取消设置元素。
  • 哦,现在我可以看到新密钥已添加为“匿名”,所以我应该取消设置为空的密钥!谢谢!
  • 它现在像上面一样工作!

标签: php arrays array-key


【解决方案1】:

不需要循环:

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

【讨论】:

    【解决方案2】:

    代码

    $user_jason[$key] = $value; 
    

    并不意味着你的空键会被替换成某个值。

    此代码意味着您的 $user_jason 数组将添加新密钥 $key 并且之前的密钥(空的)仍将在您的数组中。您可以使用unset 取消设置:

    unset($user_jason['']);
    

    【讨论】:

    • 感谢您的解释!
    猜你喜欢
    • 2018-05-22
    • 2023-02-20
    • 1970-01-01
    • 2020-05-23
    • 2015-03-08
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多