2011-08-09 98 views
0

什么是干净的方式转换成一个数组,看起来像这样的清洁方式:PHP:转换阵列

[584] => Array ([link_id] => 1 [site_id] => 5  [COUNT(*)] => 2) 
[585] => Array ([link_id] => 243 [site_id] => 5  [COUNT(*)] => 2) 
[586] => Array ([link_id] => 522 [site_id] => 89223 [COUNT(*)] => 3) 

要一个数组,其中的关键是从上面的SITE_ID,所以上面的例子得到的阵列将是:

[5] => Array(1, 2, 243, 2) //Even ones and 0 are link_id, odd ones are count(*) 
[89223] => Array(522, 3) 

所以,基本上,他们通过site_id分组。我仍然需要保持link_id和count(*)之间的关系,在上面的例子中,我是通过职位来做的(所以0和1在一起,2和3等),但我也接受新的结构。

谢谢!

+0

请格式化你的代码样本,方便易读性。 –

+0

你有什么代码? – Arjan

+0

无论你在做什么看起来不正确。与其回答这个问题,你能解释你想要做什么吗? – Xeoncross

回答

3

你的意思是这样的吗? (Demo):

$out = array(); 
foreach($input as $v) 
{ 
    $site_id = $v['site_id']; 
    unset($v['site_id']); 
    $out[$site_id][] = $v; 
} 

或者如果你更喜欢值对对方(Demo)后:

... 
    unset($v['site_id']); 
    $out[$site_id][] = array_shift($v); 
    $out[$site_id][] = array_shift($v); 
} ... 
+0

完美,谢谢! – luqita