Как передать многомерный ассоциативный массив в 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 &
Если вам нужно обрабатывать массивы произвольных измерений, вы, очевидно, можете изменить это в функцию, которая может вызываться рекурсивно, чтобы получить как можно больше уровней.