2011-05-25 38 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) 
*/ 
相关问题