Как объединить элементы одного массива в laravel? - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в Laravel.Я хочу объединить 2 многомерных массива в один массив.Я использую функцию array_merge, но это не работа.я хочу объединить массив [0] значений позиции и массив [1] значений позиций.

вот мой текущий массив выглядит следующим образом

Array
(
  [0] => Illuminate\Support\Collection Object
      (
          [items:protected] => Array
              (
                  [0] => stdClass Object
                      (
                          [product_id] => 2
                          [sale_datetime] => 2018-10-15 16:33:59
                          [name] => Tea
                          [totalqty] => 3
                      )
                  [1] => stdClass Object
                      (
                          [product_id] => 2
                          [sale_datetime] => 2018-10-16 10:44:14
                          [name] => Tea
                          [totalqty] => 5
                      )
                 )
      )
  [1] => Illuminate\Support\Collection Object
      (
          [items:protected] => Array
              (
                  [0] => stdClass Object
                      (
                          [product_id] => 3
                          [sale_datetime] => 2018-11-15 18:04:36
                          [name] => Coffee
                          [totalqty] => 20
                      )
              )
      )
)

, и я хочу сделать массив, как показано ниже массива

Array
(
  [0] => Illuminate\Support\Collection Object
      (
          [items:protected] => Array
              (
                  [0] => stdClass Object
                      (
                          [product_id] => 2
                          [sale_datetime] => 2018-10-15 16:33:59
                          [name] => Tea
                          [totalqty] => 3
                      )

                  [1] => stdClass Object
                      (
                          [product_id] => 2
                          [sale_datetime] => 2018-10-16 10:44:14
                          [name] => Tea
                          [totalqty] => 5
                      )
                  [2] => stdClass Object
                      (
                          [product_id] => 3
                          [sale_datetime] => 2018-11-15 18:04:36
                          [name] => Coffee
                          [totalqty] => 20
                      )
                 )
      )
)

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018

попробуйте этот код

$a = $arr[0];
$b = $arr[1];
$newArr= array();
$newArr["items:protected"] = array_merge($a["items:protected"],$b["items:protected"]);
0 голосов
/ 16 ноября 2018

Вы используете Коллекции от Laravel. Хотя вы можете использовать стандартные функции PHP, такие как array_merge, почему бы не использовать способ laravel, используя merge.

Копировать + вставить из документации:

$collection = collect(['product_id' => 1, 'price' => 100]);

$merged = $collection->merge(['price' => 200, 'discount' => false]);

$merged->all();

// ['product_id' => 1, 'price' => 200, 'discount' => false]

ИЛИ, если вы хотите объединить 2 коллекции:

$original = new Collection(['foo']);

$latest = new Collection(['bar']);

$merged = $original->merge($latest); // Contains foo and bar.

Взято из здесь

0 голосов
/ 16 ноября 2018

Вывод вашего кода является объектом, а не прямым массивом, используйте цикл foreach, а затем используйте array_merge.

Например. Предположим, ваш вывод хранится в переменной $ array

foreach($array as $arrays){
  array_merge('$arrays', $array_you_want_to_merge);
}

Примечание: - Ваша структура кода не ясна, поэтому, возможно, она не будет работать, но она даст вам представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...