Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/06/2011, 09:51
dokoto
 
Fecha de Ingreso: febrero-2004
Mensajes: 88
Antigüedad: 20 años, 2 meses
Puntos: 5
Respuesta: eliminar parte de un array

hola de nuevo,
Por si alguien necesita algo parecido coloco aqui lo que he conseguido.

He conseguido lo esperado del siguiente modo, seguro que no es muy correcto, vamos que no esta muy optimizado, pero funcionar funciona
Código PHP:
<?php
function elimina_duplicados($array$campo) {
  foreach (
$array as $sub) {
    
$cmp[] = $sub[$campo];
  }
  
$unique array_unique($cmp);
  foreach (
$unique as $k => $campo) {
    
$resultado[] = $array [$k];
  }
  return 
$resultado;
}
$texto '<>22:10-Madrid<>
     <>21:12-Madrid<>
    <>22:10-Barcelona<>
   <>21:11-Barcelona<>
    <>22:10-Bilbao<>
     <>21:09-Bilbao<>
   <>21:10-Malaga<>
    <>20:10-Malaga<>
    <>21:10-Malaga<>
   <>22:10-Sevilla<> '
;
preg_match_all('/<>(.*?)-(.*?)<>/i'$texto$coincidencias);
$v_usr = array();
while (
true) {
  
$ciudad current($coincidencias[2]);
  
$hora current($coincidencias[1]);
  
$v_usr[] = array('horario' => $hora'ciudad' => $ciudad);
  
$ciudad next($coincidencias[2]);
  
$hora next($coincidencias[1]);
  if (
$ciudad === false)
    break;
}
foreach (
$v_usr as $llave => $fila) {
  
$aux[$llave] = $fila['horario'];
}
array_multisort($auxSORT_ASC$v_usr);
unset (
$aux);
echo 
'<pre>';
print_r(elimina_duplicados($v_usr'ciudad'));
echo 
'</pre>';
?>
Todo esto me devuelve lo siguiente:
Código:
Array
(
    [0] => Array
        (
            [horario] => 20:10
            [ciudad] => Malaga
        )

    [1] => Array
        (
            [horario] => 21:09
            [ciudad] => Bilbao
        )

    [2] => Array
        (
            [horario] => 21:11
            [ciudad] => Barcelona
        )

    [3] => Array
        (
            [horario] => 21:12
            [ciudad] => Madrid
        )

    [4] => Array
        (
            [horario] => 22:10
            [ciudad] => Sevilla
        )

)
Si alguien tiene una mejor opcion, se agradece
Saludos