53

JSONを使用する以外に、配列を文字列に変換するために使用されるPHPの関数は何ですか?

JSONのように直接行う関数があることは知っています。私は覚えていません。

4

8 に答える 8

77

serialize()あなたが探している機能です。入力配列またはオブジェクトの文字列表現を PHP 固有の内部形式で返します。文字列は で元の形式に戻すことができますunserialize()

ただし、すべてのオブジェクトがシリアライズ可能であるとは限らないことに注意してください。一部のオブジェクトは部分的にのみシリアライズ可能であり、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";}
于 2011-07-25T13:50:46.023 に答える
47

implode()次の関数を使用します。

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
于 2011-07-25T13:53:00.830 に答える
8

serialize()を探しています。次に例を示します。

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

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

//String to array
$array = unserialize($string);
于 2011-07-25T13:53:24.013 に答える
5

PHPを使用するimplode()か、serialize()

于 2013-02-19T12:05:31.350 に答える
3

美しい方法で配列を表示します。

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

表示:

foo => 'bar', baz => 'boom', cow => 'milk', php => 'hypertext processor'
于 2015-09-02T15:26:23.627 に答える
3

これを行うにはさまざまな方法があります。 implode(), join(), var_export(), print_r(), serialize(), json_encode()exc ... これらなしで独自の関数を作成することもできます。

For()ループは非常に便利です。次のように、配列の値を別の変数に追加できます。

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

このコードでは、$dizin に $dizi の値とコンマを追加しました。

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

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

文字列ですが、余分なコンマがあります:)

そして、最後のカンマを削除し、substr($dizin, 0, -1);

出力:

「お母さん」「お父さん」「子供」

于 2015-12-03T23:14:29.180 に答える