Как лучше всего объединить массив массивов в PHP? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть массив, который я отправляю через вызов Ajax и пытаюсь сравнить его с исходным массивом. В итоге я буду использовать array_diff(), чтобы сравнить их в конце. Но моя проблема в том, что я не могу сформировать массивы таким же образом. $originalArray происходит от функций, которые устанавливают флажок, если он есть в базе данных. Теперь, когда пользователь нажимает кнопку в форме, он отправляет массив идентификаторов флажков через вызов Ajax, в результате чего получается $postArray.

Вот пример:

$postArray = array(3){ 
        [55555]=>string(2)"on" 
        [66666]=>string(2)"on" 
        [77777]=>string(2)"on" 
}
$originalArray = 
    array(1){ ["appid"]=>string(5) "55555"}, 
    array(1){ ["appid"]=>string(5) "66666"}, 
    array(1){ ["appid"]=>string(5) "77777"}

Я хочу, по сути, объединить $originalArray в один массив, похожий на $postArray. Выполнение array_merge($originalArray) создаст массив из массива, что тоже не совсем правильно. Любая помощь приветствуется. Потерпите меня, поскольку я относительно новичок в программировании и новичок в Stack Overflow. Если вам нужна дополнительная информация, я с радостью сделаю все, что смогу.

Ответы [ 2 ]

4 голосов
/ 26 мая 2020

Вы можете использовать array_combine() для создания ассоциативного массива из массива ключей и массива значений.

Используйте array_column(), чтобы получить все appid значения из $originalArray.

array_combine(array_column($originalArray "appid"), array_fill(0, count($originalArray), "on"));
1 голос
/ 26 мая 2020

Комбинация array_fill_keys() для создания массива с определенным c набором ключевых значений и array_column() для извлечения идентификатора приложения ...

$postArray = array_fill_keys(array_column($originalArray,"appid"), "on");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...