Как передать массив по ссылке? PHP

149
13 февраля 2018, 08:54

Подскажите, пожалуйста как передать массив php по ссылке? Итак, есть массив:

$array = ["Петрушка", "Малина", "Клубника", "Апельсин"];

Как передать его по ссылке? Когда использую такой вариант:

<a href="site.ru?array=<?$array?>"</a>

Ничего не происходит, пытаюсь вывести на странице куда направляется линк:

print_r($array);

Но ничего не происходит. Подскажите, пожалуйста как отправить массив и вывести его на странице?

Answer 1

у вас есть пара вариантов решения задачи. первый уже описанный в комментариях и ответе Эдуарда - кодирование массива в строку любым доступным способом. После этого еще желателен url_encode. На стороне сервера, декодирование из строки.

Второй вариант, чтобы на стороне сервера получить данные в виде массива, формат параметров должен быть вида ?data[]=value1&data[]=value2 тогда $_GET['data'] будет массивом со значениями 0 => 'value1', 1 => 'value2'

<?php 
  print_r($_GET['data']);
?>
<a href="?data[]=Петрушка&data[]=Малина">test</a>

вдогонку,
под ваш вопрос идеальным (с точки зрения близости к вопросу, а не реализации) ответом будет использование http_build_query().

<a href="?<?= http_build_query(['array' => ["Петрушка", "Малина", "Клубника", "Апельсин"]]) ?>">test</a>
Answer 2

Для передачи массива можно преобразовать его в строку, а после приёма снова преобразовать в массив:

<?php
var_dump( explode(' ', $_GET['array'] ?? null) );
$array = ["Петрушка", "Малина", "Клубника", "Апельсин"];
?>
<a href="?array=<?= join(' ', $array) ?>">Линк</a>
READ ALSO
Продлить акцию на неделю, программно

Продлить акцию на неделю, программно

Подскажите как сделать на php, продление акции на неделю программноесть код:

130
Получение данных из MySQL

Получение данных из MySQL

ЗдравствуйтеИмеется таблица table со столбиками id name model price warranty, и имеется массив, допустим $ids (в котором находятся определенные id с таблицы...

173
Админ-панель как в джанго

Админ-панель как в джанго

Есть ли какой-нибудь пакет интегрированный в Yii2 который бы добавлял админ-панель "как в django"? Те

100
Laravel autologin

Laravel autologin

Ситуация такая:

133