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 回答
19

可读输出!

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

或者

echo print_r($array, true);
于 2015-04-24T20:21:20.523 回答
8

您正在寻找serialize()。这是一个例子:

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

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

//String to array
$array = unserialize($string);
于 2011-07-25T13:53:24.013 回答
8

另一个不错的选择是 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

于 2014-08-15T14:02:07.433 回答
5

使用 phpimplode()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
?>

在这段代码中,我们将 $dizi 的值和逗号添加到 $dizin:

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

现在

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

这是一个字符串,但它有一个额外的逗号:)

然后我们删除了最后一个逗号,substr($dizin, 0, -1);

输出:

“母亲”、“父亲”、“孩子”

于 2015-12-03T23:14:29.180 回答