如何使用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);
另一个不错的选择是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 ...您也可以在没有这些的情况下编写自己的功能:
一个 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);
输出:
“母亲”,“父亲”,“孩子”
不隶属于 StackOverflow