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

StackOverflow https://stackoverflow.com/questions/6817148

  •  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);

Выход:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top