Как преобразовать массив в строку, используя методы, отличные от JSON?

Что такое функция в PHP, используемая для преобразования массива в строку, кроме использования JSON?

Я знаю, что есть функция, которая непосредственно напоминает JSON. Я просто не помню.

Related of "Как преобразовать массив в строку, используя методы, отличные от 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); 
 <?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); 

Еще одна хорошая альтернатива – 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, '', '&amp;'); 

Будет распечатан

 foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&amp;baz=boom&amp;cow=milk&amp;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);

Вывод:

«Мать», «отец», «ребенок»