如何使用JSON以外的方法将数组转换为string?
除了使用JSON之外,PHP中用于将数组转换为string的函数是什么?
我知道有一个像JSON一样的函数。 我只是不记得了。
serialize()
是你正在寻找的function。 它将以PHP特定的内部格式返回其input数组或对象的string表示forms。 该string可以用unserialize()
转换回原来的forms。
但要小心,并非所有的对象都是可序列化的,或者有些可能只是部分可序列化的,并且无法用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);
<?php $id_nums = array(1,6,12,18,24); $id_nums = implode(", ", $id_nums); $sqlquery = "Select name,email,phone from usertable where user_id IN ($id_nums)"; // $sqlquery becomes "Select name,email,phone from usertable where user_id IN (1,6,12,18,24)" ?>`
你正在寻找serialize() 。 这里是一个例子:
$array = array('foo', 'bar'); //Array to String $string = serialize($array); //String to array $array = unserialize($string);
另一个好的select是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()
循环非常有用。 你可以将你的数组的值添加到另一个variables,如下所示:
<?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',
这是一个string,但它有一个额外的逗号:)
然后我们删除了最后一个逗号, substr($dizin, 0, -1);
输出:
“母亲”,“父亲”,“子”