Php Как сделать многомерный массив как одну строку

array(array("Color", "red" ), array("Ram", "4GB" ) );

Преобразуйте этот многомерный массив в строку, подобную этой

Color=red&Ram=4GB

person ganesh rao    schedule 08.05.2021    source источник
comment
Всегда стоит поискать, прежде чем спрашивать   -  person RiggsFolly    schedule 08.05.2021
comment
Проблема не в паре "ключ-значение".   -  person ganesh rao    schedule 08.05.2021
comment
@RiggsFolly, проблема не в паре ключевых значений.   -  person ganesh rao    schedule 08.05.2021
comment
Переберите его, создайте новый массив, сделайте пару ключ-значение и используйте в конце http_build_query.   -  person nice_dev    schedule 08.05.2021


Ответы (3)


Вам нужно немного переставить входной массив, а затем вы можете использовать http_build_query()

$sq = array(array("Color", "red" ), array("Ram", "4GB" ) );

$aa = [];

foreach( $sq as $s ) {
    $aa[$s[0]] = $s[1];
}

echo http_build_query($aa);

РЕЗУЛЬТАТ

Color=red&Ram=4GB
person RiggsFolly    schedule 08.05.2021
comment
Это сработало, большое спасибо - person ganesh rao; 09.05.2021

Пока 0 - имя ключа, а 1 - значение, тогда просто создайте одно измерение, проиндексированное по первому элементу, и постройте строку запроса:

$string = http_build_query(array_column($array, 1, 0));
person AbraCadaver    schedule 08.05.2021
comment
Да, это сработало ???? - person ganesh rao; 09.05.2021

Простой подход: перебрать $params и снова выполнить цикл для каждого $param, затем получить пару $key $value, объединить их с = и сохранить в массиве $query. последнее, но не менее важное: присоединяйтесь к ним вместе с &.

$params = [['color'=>'red'],['RAM'=>'4gb']];

$query = [];
foreach ($params as $param) {
    foreach ($param as $key => $value) {
        array_push($query, "$key=$value");
    }
}
echo join("&",$query);

Результат:

color=red&RAM=4gb
person Mehdi Taher    schedule 08.05.2021
comment
Это не пара "ключ-значение", оба являются значениями. - person ganesh rao; 09.05.2021