Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/02/2014, 18:46
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Separar cadena en multiples secciones para crear filtro

No es necesario que coloques la palabra reservada var para declarar una variable en PHP, basta con que tenga el signo de dólar adelante. Con respecto a lo de separar la cadena, podrías hacerlo así:

Código PHP:
Ver original
  1. //Este es el valor que tienes (que puede variar)
  2. $filter = "select_time=1&grade1=1&grade2=2&grade3=3&genre5=5&genre19=19&language0=0";
  3.  
  4. $array1 = explode("&", $filter);
  5. $array2 = array();
  6.  
  7. foreach ($array1 as $cadena){
  8.     $clave = substr($cadena, 0, strpos($cadena, "=") - 1);
  9.     $valor = substr($cadena, strpos($cadena, "=") + 1);
  10.     $array2[$clave] = $valor;
  11. }

Si haces un print_r($array2), verás su contenido:

Código HTML:
Ver original
  1. Array
  2. (
  3.     [select_tim] => 1
  4.     [grade] => 3
  5.     [genre] => 5
  6.     [genre1] => 19
  7.     [language] => 0
  8. )

Y si quieres tomar sus valores de manera independiente, hazlo así:

Código PHP:
Ver original
  1. $select_tim = $array2["select_tim"];
  2. $grade = $array2["grade"];
  3. $genre = $array2["genre"];
  4. $genre1 = $array2["genre1"];
  5. $language =$ array2["language"];

Básicamente, convierto la cadena original en un array utilizando la función explode, con la cual separo cada par de valores a partir de la aparición de los &, luego, recorro ese array y asigno cada clave y valor a un segundo array, identificando cada parte con las funciones substr y strpos, por ejemplo, en tu string query tienes lo siguiente:

Código HTML:
Ver original
  1. select_time=1&grade1=1&grade2=2&grade3=3&genre5=5&genre19=19&language0=0

Los valores numéricos serían los valores y lo que antecede al signo de igualdad sería la clave. Ahora ya puedes manipular cada elemento y su valor de forma independiente.

Un ejemplo en ejecución: http://ideone.com/9popi8

Te sugiero leer la información que hay en el manual oficial acerca de las funciones que utilicé para que entiendas mejor su funcionamiento.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand