2016-12-13 122 views
1

我的陣列看起來像下面的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; 
     } 

     } 
    } 

但它仍然是空的,請建議我該如何做到這一點。對不起,問這可能很容易,但我正在努力,而且無法實現這一點。

謝謝!

+1

空關鍵是在陣列,但新的密鑰加入過多。取消一個元素是用'unset'函數完成的。 –

+0

哦,現在我可以看到新密鑰被添加爲「匿名」,所以我應該取消空密鑰!謝謝! – jas

+0

它現在就像上面一樣工作! – jas

回答

2

無需循環:

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

非常感謝! – jas

2

代碼

$user_jason[$key] = $value; 

並不意味着你的空密鑰將使用一些值來代替。

此代碼意味着您的$user_jason陣列將添加新的密鑰$key和前一個鍵(空的一個)仍然會在您的陣列中。你可以用unset取消它:

unset($user_jason['']); 
+0

感謝您的解釋! – jas