2011-05-25 73 views
1

我有一個關聯數組作爲如何追加數組中的值,如果關鍵是相同

[name]->user1, 
[class_code]->bsc, 
[name]->user2, 
[class_code]->msc, 
[name]->user1, 
[class_code]->mca 

現在,我想結果爲

[name]->user1, 
[class_code]->bsc, 
mca 
[name]->user2, 
[class_code]->msc 

意味着,如果名稱是相同的,則class_code追加到第一。我應該怎麼做? 我的陣列是

[1] =stdClass Object 
     ([class_code] =Maths 
      [userid] =365 
      [avatar] =default.jpg 
      [username] =user2 
     ) 

    [2] =stdClass Object 
     (
      [class_code] =Maths 
      [userid] = 364 
      [avatar] =default.jpg 
      [username] =user1 
     ) 

[3] =stdClass Object 
     (
      [class_code] =MCA 
      [userid] =364 
      [avatar] =default.jpg 
      [username] =user1 
     ) 

    [4] =stdClass Object 
     (
      [class_code] =MCA 
      [userid] =365 
      [avatar] =default.jpg 
      [username] =user2 
     ) 

現在,雖然顯示的結果我想顯示對前記錄。用戶2作爲

username:user2 
avatar 
classcode :MCA,Maths 

,而不是

username:user2 
avatar 
classcode :MCA 
username:user2 
avatar 
classcode :Maths 

我該怎麼辦呢?

+5

你怎麼能有一個關聯數組,其中不同的條目具有相同的密鑰?請發佈陣列的'var_export'。 – 2011-05-25 07:32:51

回答

2

您不能使用相同的鍵具有兩個值。否則,如果你要求$ myarray ['name'],php將不知道該給你什麼。

您可以改爲使用嵌套數組。

[0]-> 
    [name]->user1, 
    [class_code]->bsc,mca, 
[1]-> 
    [name]->user2, 
    [class_code]->msc 

,或者如果你想在那裏有兩個值,你可以做這樣的事情

[user1]->bsc, mca 
[user2]->msc 
+0

謝謝!!但是,實際上我的數組是 – Aarti 2011-05-25 11:17:41

0

,你應該考慮在那裏

array(
    "name"=>"user1, 
    "class_code"=>"array('mca','bsc'), 
    "name"=>"user2, 
    "class_code"=>"msc" 
); 
0
使用數組

如果[class_code]必須包含一個字符串,您可以嘗試

$array[$key] .= $value; 
0

可以使整個數組多維:

檢索值:通過值

$users[1][name]    // Returns 'user2' 
$users[0][class_code]  // Returns 'bsc' 

自行車:

foreach($users as $user => $attributes) { 
    echo "$user: $attributes[name] ($attributes[class_code])<br />"; 
} 

/* 
Prints: 
    0: user1 (bsc) 
    1: user2 (msc) 
*/ 
相關問題