JSON以外の方法を使用して配列を文字列に変換する方法は?
-
25-10-2019 - |
質問
JSONを使用する以外に、配列を文字列に変換するために使用されるPHPの関数は何ですか?
JSONが好きな関数があることは知っています。覚えていません。
解決
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";}
他のヒント
使用 implode()
関数:
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
読み取り可能な出力!
echo json_encode($array); //outputs---> "name1":"value1", "name2":"value2", ...
また
echo print_r($array, true);
あなたは探している シリアライズ(). 。これが例です:
$array = array('foo', 'bar');
//Array to String
$string = serialize($array);
//String to array
$array = unserialize($string);
もう1つの良い選択肢は、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, '', '&');
印刷します
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
詳細については、こちらをご覧ください http://php.net/manual/en/function.http-build-query.php
PHPを使用します implode()
また serialize()
美しい方法で配列を表示:
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'
これらのいくつかが与えたこれを行うには、さまざまな方法があります。implode(), join(), var_export(), print_r(), serialize(), json_encode()
Exc ...これらなしでは独自の機能を書くこともできます。
a 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
?>
このコードでは、$ diziの値とコンマを$ dizinに追加しました。
$dizin.=("'$dizi[$i]',");
今
$dizin = 'mother', 'father', 'child',
文字列ですが、追加のコンマがあります:)
そして、最後のコンマを削除しました、 substr($dizin, 0, -1);
出力:
「母」、「父」、「子供」