Come convertire array in una stringa utilizzando metodi diversi da JSON?
-
25-10-2019 - |
Domanda
Che cosa è una funzione in PHP utilizzata per convertire array in stringhe, altro che usare JSON?
So che c'è una funzione che fa direttamente come JSON. Io proprio non lo ricordo.
Soluzione
serialize()
è la funzione che si sta cercando. Esso restituirà una stringa che rappresenta la sua matrice di ingresso o oggetto in un formato interno specifico PHP. La stringa può essere di nuovo convertito alla sua forma originale con unserialize()
.
Ma attenzione, che non tutti gli oggetti sono serializzabili, o alcuni possono essere solo parzialmente serializzabile e in grado di essere completamente ripristinato con unserialize()
.
$array = array(1,2,3,'foo');
echo serialize($array);
// Prints
a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;s:3:"foo";}
Altri suggerimenti
Utilizzare la href="http://php.net/manual/en/function.implode.php" rel="noreferrer"> implode()
funzione $array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
output leggibile!
echo json_encode($array); //outputs---> "name1":"value1", "name2":"value2", ...
o
echo print_r($array, true);
Siete alla ricerca di serialize () . Ecco un esempio:
$array = array('foo', 'bar');
//Array to String
$string = serialize($array);
//String to array
$array = unserialize($string);
Un'altra buona alternativa è http_build_query
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&');
stamperà
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
Maggiori informazioni qui http://php.net/manual/en /function.http-build-query.php
Utilizzare PHP implode()
o serialize()
Display matrice in modo molto bello:
function arrayDisplay($input)
{
return implode(
', ',
array_map(
function ($v, $k) {
return sprintf("%s => '%s'", $k, $v);
},
$input,
array_keys($input)
)
);
}
$arr = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo arrayDisplay($arr);
Visualizza:
foo => 'bar', baz => 'boom', cow => 'milk', php => 'hypertext processor'
Ci sono diversi modi per fare questo alcuni di loro ha dato.
implode(), join(), var_export(), print_r(), serialize(), json_encode()
exc ... Puoi anche scrivere la propria funzione, senza questi:
Un ciclo For()
è molto utile. È possibile aggiungere il valore del vostro array a un'altra variabile in questo modo:
<?php
$dizi=array('mother','father','child'); //This is array
$sayi=count($dizi);
for ($i=0; $i<$sayi; $i++) {
$dizin.=("'$dizi[$i]',"); //Now it is string...
}
echo substr($dizin,0,-1); //Write it like string :D
?>
In questo codice abbiamo aggiunto i valori e le virgole $ di Dizi a $ Dizin:
$dizin.=("'$dizi[$i]',");
Ora
$dizin = 'mother', 'father', 'child',
E 'una stringa, ma ha un virgola in più:)
E poi abbiamo cancellato l'ultimo comma, substr($dizin, 0, -1);
Output:
'madre', 'padre', 'figlio'