Как отразить массив

142
01 октября 2019, 03:50

Ребят, помогите развернуть массив, из такого:

    [add_link] => Array
    (
        [name] => Array
            (
                [0] => Name 1
                [1] => Name 2
                [2] => Name 3
            )
        [url] => Array
            (
                [0] => Url 1
                [1] => Url 2
                [2] => Url 3
            )
    )

в такой:

    [add_link] => Array
    (
        [0] => Array( 'name' => Name 1, 'url' => Url 1 )
        [1] => Array( 'name' => Name 2, 'url' => Url 2 )
        [2] => Array( 'name' => Name 3, 'url' => Url 3 )
    )

замучился уже..

массив динамический, приходит из формы, в которую инпуты js`ом добавляются

<input name="add_link[name][]" >
<input name="add_link[url][]" >

чтобы тупые вопросы мне не задавали - это из оф.документации, способ получения данных из формы с динамическими инпутами, когда их количество не определено http://php.net/manual/ru/faq.html.php http://php.net/manual/ru/language.variables.external.php#example-90

Answer 1
$result['add_link'] = array_map(function($name, $url){
                         return ['name' => $name, 'url' => $url];
                  }
                 , $data['add_link']['name']
                 , $data['add_link']['url']);

но зачем создавать себе лишние проблемы, и отправлять данные на сервер в неудобном виде? Вместо двух разных массивов add_link[name][] наоборот отправляйте их парами add_link[0][name] и т.д.

Answer 2

Если кол-во ключей элементов в name и url всегда совпадает, то можно просто перебрать:

$newArray = [];
foreach ($myArray['add_link']['name'] as $key => $name) {
    $newArray[] = [
        'name' => $name,
        'url' => $myArray['add_link']['url'][$key]
    ];
}
unset ($myArray) // уничтожаем исходный массив если не нужен
var_dump($newArray);
READ ALSO
Добавить пользователя linux через php

Добавить пользователя linux через php

Возникла проблема в добавлении пользователя через скрипт php функцией execexec("whoiam) выдает www-data, www-data добавлена в visudo [# User privilege specification root ALL=(ALL:ALL)...

137
Отправка/получение данных из php COM-port и обратно через c#

Отправка/получение данных из php COM-port и обратно через c#

Возникла такая задачаНужно обратиться из php в приложение работающее через com порт (с вызовом dll библиотеки) и получить обратно от него ответ

124
mysql_insert_id возвращает 0 после UPDATE

mysql_insert_id возвращает 0 после UPDATE

Подскажите пожалуйста, есть код, который обновляет запись таблицы:

122
передача из формы в БД php/mysql

передача из формы в БД php/mysql

Возникла некая проблема при создание формыТо есть, при заполнении таблицы нужно создать в БД таблицу с названием, которое содержит переменная...

138