Задать вопрос
@frmax
человек

Сложение массивов?

Всем привет помогите придумать оптимальное решение

если 2 многомерных массива
array:4 [
    0 => array:4 [
    "date" => "2018-11-15"
    "type" => "test1"
    "all" => "4"
    "queue" => "1"
  ]
  1 => array:4 [
    "date" => "2018-11-16"
    "type" => "test1"
    "all" => "16"
    "queue" => "1"
  ]
  2 => array:4 [
    "date" => "2018-11-16"
    "type" => "test2"
    "all" => "1"
    "queue" => "1"
  ]
  3 => array:4 [
    "date" => "2018-11-16"
    "type" => "test1_1"
    "all" => "1"
    "queue" => "1"
  ]
]


2

array:7 [
    0 => array:3 [
    "date" => "2018-11-13"
    "new" => "1"
    "type" => "test1_1"
  ]
  1 => array:3 [
    "date" => "2018-11-14"
    "new" => "1"
    "type" => "test1"
  ]
  2 => array:3 [
    "date" => "2018-11-14"
    "new" => "2"
    "type" => "test2"
  ]
  3 => array:3 [
    "date" => "2018-11-14"
    "new" => "1"
    "type" => "test3"
  ]
  4 => array:3 [
    "date" => "2018-11-15"
    "new" => "1"
    "type" => "test2"
  ]
  5 => array:3 [
    "date" => "2018-11-16"
    "new" => "4"
    "type" => "test1"
  ]
  6 => array:3 [
    "date" => "2018-11-16"
    "new" => "1"
    "type" => "test2"
  ]
]


Из них должно получиться 1 массив содержащий 1 и 2 (по типу и дате), если не нашлось пары то подставляются дефолтное значение new=>0
к примеру первые 2
0 => array:4 [
    "date" => "2018-11-15"
    "type" => "test1"
    "all" => "4"
    "new" => "0",
    "queue" => "1"
  ]
  1 => array:4 [
    "date" => "2018-11-16"
    "type" => "test1"
    "all" => "16",
    "new" => "4",
    "queue" => "1"
  ]


У меня все вышло но выходит оч много переборов массивов и это меня расстраивает у кого какие предложения?
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@Arik
Если нужно смотреть на date + type, то можно попробовать:

1. Обойти один из массивов и сделать всем записям ключи
"date + type:
$arr = [
'2018-11-16 - test1' => [
    "date" => "2018-11-16"
    "type" => "test1"
    "all" => "16",
    "new" => "4",
    "queue" => "1"
],
];


2. Обходим второй массив, собираем такой же ключ и если он есть в первом, то берем по нему значение и склеиваем по вашим требованиям.

на выходе по одному обходу на массив
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽