PHP Создать многомерный массив с помощью Reduce - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь сделать массив массивов. Каждый массив ($ group) в массиве ($ multi_array) должен содержать не более 40 элементов.

$multi_array = array_reduce($items, function($acc, $item) {

  if (count($acc) % 40 === 0) {
    array_push($acc, [$item]);
  } else {
    array_push($acc[count($acc) - 1], $item);
  }

  return $acc;
}, []);

var_dump(count($multi_array));

foreach ($multi_array as $group) {
  var_dump(count($group));
}

Однако в первом var_dump (count ($ multi_array)); значение равно 1. В следующем var_dump значение равно 546. Я ожидаю, что $ rate_limit_array будет иметь по крайней мере 13 массивов длиной 40. Кто-нибудь знает, что я делаю неправильно внутри моей функции сокращения? Следует ли мне использовать другой подход для достижения своей цели в PHP?

1 Ответ

2 голосов
/ 04 августа 2020

Хорошо, я нашел другой способ сделать это с помощью array_chunk :

$multi_array = array_chunk($items, 40, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...