Pregunta

¿Cómo puedo ordenar una cadena, en el formato que $ _POST hace ... más o menos, bueno, tengo este tipo de formato en:

101=1&2020=2&303=3

(En caso de que te preguntes, es el resultado de jQuery Sortable Serialize ... Quiero ejecutar una instrucción SQL para actualizar un campo con el lado DERECHO del signo =, ¿dónde está el lado izquierdo del signo igual? Conozco el SQL para esto, pero quería ponerlo en un formato en el que pudiera usar el foreach ($ VAR como $ key = > $ value) y construir una declaración sql a partir de eso ... ya que no sé cuántos 101 = 1 habrá?

Solo quiero explotar esto de una manera que $ key = 101 y $ value = 1

Suena confuso;) ¡Muchas gracias por adelantado!

¿Fue útil?

Solución

$input = "101=1&2020=2&303=3";
$output = array();
$exp = explode('&',$input);
foreach($exp as $e){
   $pair = explode("=",$e);
   $output[$pair[0]] = $pair[1];
}

Otros consejos

Consulte la función parse_str .

No es el nombre de función más intuitivo en PHP, pero la función que está buscando es parse_str () . Puedes usarlo así:

$myArray = array();
parse_str('101=1&2020=2&303=3', $myArray);
print_r($myArray);

Una solución rápida y sucia:

<?php
$str = "101=1&2020=2&303=3";
$VAR = array();
foreach(explode('&', $str) AS $pair)
{
    list($key, $value) = each(explode('=', $pair));
    $VAR[$key] = $value;
}
?>
parse_str($query_string, $array_to_hold_values);

Explotar en el & amp; para obtener una matriz que contenga [101 = 1, 2020 = 2, 303 = 3] y luego para cada elemento, divida en el = y presione el par clave / valor en una nueva matriz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top