Ok, tienes razón, y me disculpo por no haber probado el código como debería haberlo hecho...
Ahora, eh probado este código, y funciona, pero, como no tengo los registros que tu tienes (mas que nada, como están formados los registros que recuperas) no estoy seguro si te va a funcionar, en el código esta un ejemplo de uso...
Código PHP:
Ver original<?php
function search_in_array($search,$array) {
$count = 0;
foreach($array as $item) {
if ($item['sucursal'] == $search) {
return $count;
}
$count++;
}
return false;
}
//Un arreglo para probar el código
array('sucursal','agua'), array('sucursal','agua1'), array('sucursal','agua2'), array('sucursal','agua3'), array('sucursal','agua4'), array('sucursal','agua5'), array('sucursa2','agua'), array('sucursa2','agua1'), array('sucursa2','agua2'), array('sucursa2','agua3'), array('sucursa2','agua4'), array('sucursa2','agua5') );
foreach($items as $item) {
$keyArray = search_in_array($item[0],$newArray);
if ($keyArray === false) {
$newArray[]['sucursal'] = $item[0];
}else {
$newArray[$keyArray]['servicios'][] = $item[1];
}
}
echo '<pre>';
echo '</pre>';
Al final se obtiene el siguiente resultado...
Código:
array(2) {
[0]=>
array(2) {
["sucursal"]=>
string(8) "sucursal"
["servicios"]=>
array(5) {
[0]=>
string(5) "agua1"
[1]=>
string(5) "agua2"
[2]=>
string(5) "agua3"
[3]=>
string(5) "agua4"
[4]=>
string(5) "agua5"
}
}
[1]=>
array(2) {
["sucursal"]=>
string(8) "sucursa2"
["servicios"]=>
array(5) {
[0]=>
string(5) "agua1"
[1]=>
string(5) "agua2"
[2]=>
string(5) "agua3"
[3]=>
string(5) "agua4"
[4]=>
string(5) "agua5"
}
}
}