array ( 0 => array ( 'c0' => '6/111', 'c1' => '6/114', 'cnt' => '1', ), 1 => array ( 'c0' => '6/114', 'c1' => '6/111', 'cnt' => '1', ), 2 => array ( 'c0' => '6/145', 'c1' => '6/116', 'cnt' => '1', ), )
chce, aby tak jak w zalaczonym przykladzie; "poprzestawial" jak w
0 => array ( 'c0' => '6/111', 'c1' => '6/114', 'cnt' => '1', ),
1 => array ( 'c0' => '6/114', 'c1' => '6/111', 'cnt' => '1', ),
c0 i c1, aby wyszlo (i zostala zresetowana tablica)
0 => array ( 'c0' => '6/111', 'c1' => '6/114', 'cnt' => '2', ),
1 => array ( 'c0' => '6/145', 'c1' => '6/116', 'cnt' => '1', ), )
jak to zrobic? wydaje mi sie, ze na samym SQL nie da sie tego zrobic (zn. "poprzestawiac"), ponadto wydaje mi sie, ze bedzie przydatny ten kod:
/* $_c1 = @array_merge($_c1,$_c1x); if(!empty($_c0)) { foreach($_c1 as $value) { if(!isset($c1x[$value['id']])) { $c1x[$value['id']] = $value; $c1x[$value['id']]['cnt'] = 0; } $c1x[$value['id']]['cnt']++; } $this->tpl->assign('c1x',$c1x); } */
prosze o pomoc, dziekuje
$q = q('SELECT (CASE WHEN c0 > c1 THEN c0 ELSE c1 END) AS c0, (CASE WHEN c0 > c1 THEN c1 ELSE c0 END) AS c1, COUNT(*) AS cnt FROM `'.PRFX.'ads` WHERE '.$sql.' GROUP BY c0, c1'); while($_d = f($q)) $d[] = $_d; var_export($d); die;