Как преобразовать массив в строку с использованием методов, отличных от JSON?
-
25-10-2019 - |
Вопрос
Какова функция в PHP, используемой для преобразования массива в строку, кроме использования JSON?
Я знаю, что есть функция, которая напрямую любит 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);
Ты ищешь serialize (). Анкет Вот пример:
$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()
EXCS ... вы также можете написать свою собственную функцию без этого:
А 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);
Выход:
«Мать», «Отец», «Ребенок»