PHP按数据值分组

时间:2011-09-27 22:40:42

标签: php arrays grouping

我的数据变量:

1=icon_arrow.gif,2=icon_arrow.gif,3=icon_arrow.gif

我需要将它按=后面的值分组,所以在这种情况下它应该如下所示:

$out = array('icon_arrow.gif' => '1, 2, 3');

' icon_arrow.gif'字段必须是唯一的,并且不能重复。

怎么做?

2 个答案:

答案 0 :(得分:3)

初始化一个数组:

$array = array();

,分解输入,将结果存储为基于=的子爆炸的数组:

foreach(explode(',', $string) as $p)
{
   list($i, $n) = explode('=',$p);
   $array[$n][] = $i;
}

然后以,

破坏结果
foreach($array as &$v)
    $v = implode(', ', $v);
unset($v);

完成。

答案 1 :(得分:2)

只是为了好玩。没有特殊的字符,这也应该有用。

$str="1=icon_arrow.gif,2=icon_arrow.gif,3=icon_arrow.gif,4=x.gif";

$str = str_replace(',', '&', $str);
parse_str($str, $array);
$result = array();
foreach($array as $k=>$v)
    $result[$v] = (isset($result[$v]) ? $result[$v] . ", " : "") . $k;