Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/08/2014, 15:46
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Manejo mas sencillo de explode e implode

@alealvaro Ojo con tu codigo! si el elemento no existe borrara al primer elemento del array, debes agregar un if adicional al array_search!

Otras formas pueden ser:

Código PHP:
Ver original
  1. $cadena = "menu;news;lateral;footer";
  2.  
  3. $new_cadena = implode(";", array_diff(explode(";", $cadena),  array("lateral")));

Con lo cual puedes eliminar cualquier otro elemento agregandolo al segundo array.

Tambien podrias hacer:
Código PHP:
Ver original
  1. $cadena = "menu;news;lateral;footer";
  2.  
  3. $new_cadena = trim(str_replace(";;", ";", str_replace(array("lateral"), "", $cadena)), ";");

Y tambien puedes eliminar varios elementos agregandolos al array.

Otra forma tambien es:
Código PHP:
Ver original
  1. $cadena = "menu;news;lateral;footer";
  2.  
  3. $partes = array_fill_keys(explode(";", $cadena), null);
  4.  
  5. unset($partes["lateral"]);
  6.  
  7. $new_cadena = implode(";", array_keys($partes));

Debes escribir varios unset para borrar varios elementos.

Otra forma podria ser:
Código PHP:
Ver original
  1. $cadena = "menu;news;lateral;footer";
  2.  
  3. $new_cadena = implode(";", array_filter(explode(";", $cadena), function($parte){
  4.     return ($parte != "lateral");
  5. });
Donde deberas agregar cada elemento a eliminar en la condicion.

Hay muchas mas formas incluyendo las artesanales
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios