Было много ответов, но это то, что я использую:
const chunk = (arr, size) =>
arr
.reduce((acc, _, i) =>
(i % size)
? acc
: [...acc, arr.slice(i, i + size)]
, [])
// USAGE
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunk(numbers, 3)
// [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Сначала проверьте остаток при делении индекса на размер блока.
Если есть остальная часть затем просто возвращает массив накопителей.
Если нет остатка, тогда индекс делится на размер куска, поэтому возьмите срез из исходного массива (начиная с текущего индекса) и добавьте его в массив аккумуляторов.
Итак, возвращаемый массив накопителей для каждой итерации сокращения выглядит примерно так:
// 0: [[1, 2, 3, 4]]
// 1: [[1, 2, 3, 4]]
// 2: [[1, 2, 3, 4]]
// 3: [[1, 2, 3, 4]]
// 4: [[1, 2, 3, 4], [5, 6, 7, 8]]
// 5: [[1, 2, 3, 4], [5, 6, 7, 8]]
// 6: [[1, 2, 3, 4], [5, 6, 7, 8]]
// 7: [[1, 2, 3, 4], [5, 6, 7, 8]]
// 8: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]
// 9: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]
Несколько подсказок:
require
значения не должны быть в скобках. mysql_
, эта библиотека теперь CEASED и недоступна в PHP 7. Обновитесь до 2012 и используйте mysqli_
или PDO
. ( Почему? ) md5
для хеширования паролей. Используйте встроенные в PHP функции password_hash()
. ( Как? ) return mysql_error();
). Вы должны отправлять сообщения об ошибках в журнал ошибок (error_log(print_r(mysql_error(),true));
), чтобы публика не могла увидеть подробности ошибки. Использовать Подготовленные высказывания при взаимодействии с вашей базой данных. ([Как? ( https://phpdelusion.net/mysqli ))
Header("Location: ... ");
функции всегда должны сразу сопровождаться exit;
/ [1110 ]
__constuct()
. ( почему? ) return true;
вместо return "true";
mysql_
. Почему вы все еще используете их? Прекратите читать это и обновите свою кодовую базу! Используйте mysqli_
или PDO
. ( Почему? ) Вам нужно много читать и многому научиться. Я бы сказал, удачи, но вам не нужна удача, вам нужно прочитать и посвятить себя тому, чтобы научиться правильно использовать PHP .
Веселись.