PHP分组的数据值

问题描述:

我的数据变量:PHP分组的数据值

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

我需要它通过=后的值进行分组,所以在这种情况下,它应该是这样的:

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

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

它是如何做到的?

+0

什么是原始字符串的来源? – 2011-09-27 22:46:13

+1

也许这只是我,但我完全不明白这个问题。 ha – Shackrock

+0

到目前为止你有什么? – webbiedave

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

$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; 
+0

我真的很喜欢这个主意,谢谢! – Lucas

初始化一个数组:与,

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

内爆那么结果:

$array = array(); 

,爆炸的输入端,存储结果作为数组根据它由=子爆炸:

foreach($array as &$v) 
    $v = implode(', ', $v); 
unset($v); 

完成。

+0

'$ v = implode(',',$ v);' –

+0

@yi_H:是的,对^^ – hakre

+0

好吧,geez。你为他做了整件事。他将如何学习? ;) – webbiedave