Как передать многомерный ассоциативный массив в URL

Я гуглял часами, но не могу сделать из этого ни головы, ни хвост. У меня есть многомерный ассоциативный массив, как это:

$mArray = array(
   array("m" => "0"),
   array("m" => "1"),
   array("m" => "1")
   );

Я хотел бы создать массив с запросом PHP GET:

mywebsite.com/file.php?.......what do I put here?.....

1 ответ

Решение

Вам нужно использовать обозначение доступа к массиву, как это

mywebsite.com/file.php?item[0][m]=0&item[1][m]=1&item[2][m]=1

Было бы просто использовать вложенные циклы для построения этой строки - не забудьте URL кодировать значения

$query_string = '';
foreach($mArray as $key => $array) {
    foreach($array as $k => $v) {
        $query_string .= 'item[' . urlencode($key) . '][' . urlencode($k) . ']=' . urlencode($v) . '&';
    }
}
$query_string = substr($query_string, 0, 1); // trim extra &

Если вам нужно обрабатывать массивы произвольных измерений, вы, очевидно, можете изменить это в функцию, которая может вызываться рекурсивно, чтобы получить как можно больше уровней.

Другие вопросы по тегам