Metti una stringa nel seguente formato?
Domanda
Come posso array una stringa, nel formato che $ _POST fa ... tipo di, beh, ho questo tipo di formato in arrivo:
101=1&2020=2&303=3
(In caso di domande, è il risultato di jQuery Sortable Serialize ... Voglio eseguire un'istruzione SQL per aggiornare un campo con il lato DESTRO del segno =, dove si trova il lato sinistro del segno di uguale? Conosco l'SQL per questo, ma volevo metterlo in un formato che avrei potuto usare foreach ($ VAR come $ key = > $ value) e creare un'istruzione sql da quello .. come non so quanti 101 = 1 ci sarà?
Voglio solo esplodere in un modo che $ key = 101 e $ value = 1
Sembra confuso;) Grazie mille in anticipo !!
Soluzione
$input = "101=1&2020=2&303=3";
$output = array();
$exp = explode('&',$input);
foreach($exp as $e){
$pair = explode("=",$e);
$output[$pair[0]] = $pair[1];
}
Altri suggerimenti
Guarda la funzione parse_str
.
Non è il nome della funzione più intuitiva in PHP ma la funzione che stai cercando è parse_str () . Puoi usarlo in questo modo:
$myArray = array();
parse_str('101=1&2020=2&303=3', $myArray);
print_r($myArray);
Una soluzione rapida e sporca:
<?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);
Esplodi su & amp; per ottenere un array che contiene [101 = 1, 2020 = 2, 303 = 3] quindi per ciascun elemento, dividi su = e invia la coppia chiave / valore su un nuovo array.