web-dev-qa-db-fra.com

Comment convertir un tableau en chaîne en utilisant des méthodes autres que JSON?

Qu'est-ce qu'une fonction dans PHP utilisée pour convertir un tableau en chaîne, autre que d'utiliser JSON?

Je sais qu'il existe une fonction qui fait directement comme JSON. Je ne me souviens tout simplement pas.

50
maniclorn

serialize() est la fonction que vous recherchez. Il renverra une représentation sous forme de chaîne de son tableau ou de son objet en entrée dans un format interne spécifique à PHP. La chaîne peut être reconvertie dans sa forme originale avec unserialize().

Mais attention, tous les objets ne sont pas sérialisables, ou certains peuvent ne l'être que partiellement et ne peuvent pas être restaurés complètement avec 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";}
75
Michael Berkowski

Utilisez la fonction implode() :

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
44
Tjekkles

sortie lisible!

echo json_encode($array);     //outputs--->    "name1":"value1",  "name2":"value2",  ...

OR

echo print_r($array, true);
18
T.Todua

Vous recherchez serialize () . Voici un exemple:

$array = array('foo', 'bar');

//Array to String
$string = serialize($array);

//String to array
$array = unserialize($string);
6
DevelRoot

Une autre bonne alternative est 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, '', '&');

Va imprimer

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor

Plus d'infos ici http://php.net/manual/en/function.http-build-query.php

6
casivaagustin

utiliser php implode() ou serialize()

3
umesh unnikrishnan

Tableau d'affichage de belle manière:

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);

Affiche:

foo => 'bar', baz => 'boom', cow => 'milk', php => 'hypertext processor'
2
Somnath Muluk

Il y a différentes façons de faire ce que certaines d'entre elles ont donné. implode(), join(), var_export(), print_r(), serialize(), json_encode() exc ... Vous pouvez également écrire votre propre fonction sans ces éléments:

Une boucle For() est très utile. Vous pouvez ajouter la valeur de votre tableau à une autre variable comme celle-ci:

<?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
?>

Dans ce code, nous avons ajouté les valeurs et la virgule de $ dizi à $ dizin:

$dizin.=("'$dizi[$i]',");

Maintenant

$dizin = 'mother', 'father', 'child',

C'est une chaîne, mais elle a une virgule supplémentaire :)

Et puis nous avons supprimé la dernière virgule, substr($dizin, 0, -1);

Sortie:

'mère', 'père', 'enfant'

2
BARIS KURT