Я ищу быстрый способ превратить ассоциативный массив в строку. Типичная структура будет похожа на строку запроса URL, но с настраиваемыми разделителями, поэтому я могу использовать " &
" для ссылок xhtml или " &
" в противном случае.
В первую очередь я склоняюсь к использованию, foreach
но поскольку мой метод может вызываться много раз за один запрос, я боюсь, что он может быть слишком медленным.
<?php
$Amp = $IsXhtml ? '&' : '&';
$Parameters = array('Action' => 'ShowList', 'Page' => '2');
$QueryString = '';
foreach ($Parameters as $Key => $Value)
$QueryString .= $Amp . $Key . '=' . $Value;
Есть более быстрый способ?
Ответы:
Вы можете использовать
http_build_query()
для этого.источник
http_build_query
избежать специального символаКстати, я искал лучший способ взорвать ассоциативный массив, но с использованием моих собственных разделителей и т. Д.
Я сделал это, используя функцию PHP array_walk (), чтобы я мог присоединить ассоциативный массив к списку параметров, которые затем можно было бы применить к тегу HTML ....
Очевидно, вы могли бы каким-то образом закрепить это в своей собственной функции, но это дает вам представление о том, как вы можете присоединиться к ассоциативному массиву, используя свой собственный метод. Надеюсь, это кому-то поможет :)
источник
Если вас не беспокоит точное форматирование, но вам нужно что-то простое, но без разрывов строк,
print_r
вы также можете использовать егоjson_encode($value)
для быстрого и простого форматированного вывода. ( обратите внимание, что он хорошо работает и с другими типами данных )источник
Это мое решение, например, для атрибутов данных div:
источник
Один из способов - использовать,
print_r(array, true)
и он вернет строковое представление массиваисточник
key=value
сочетании с поставляемым разделителем.источник
Однострочник для создания строки атрибутов HTML (с кавычками) из простого массива:
Пример:
источник
Мое решение:
источник
А как насчет этого более короткого, прозрачного и еще более интуитивного с помощью array_walk
источник
Это самая простая версия, о которой я могу думать:
источник
key=value
выбранным разделителем!$companies->toArray()
- это на всякий случай, если ваш$variable
объект, иначе просто пропустите $ companies.Это оно!
источник