count
Подсчитывает все элементы в массиве при использовании с массивом. При использовании с объектом, реализующим интерфейс Countable , он возвращает возвращаемое значение метода Countable :: count () .
Parameters
Если необязательный параметр mode установлен в COUNT_RECURSIVE (или 1), count () будет рекурсивно подсчитывать массив. Это особенно полезно для подсчета всех элементов многомерного массива.
count () может обнаруживать рекурсию, чтобы избежать бесконечного цикла, но будет E_WARNING каждый раз (в случае, если массив содержит себя более одного раза) и возвращать счетчик больше, чем можно было ожидать.
Return Values
Возвращает количество элементов в value . До PHP 8.0.0, если параметр не был ни массивом , ни объект , который реализует счетные интерфейс, 1 будет возвращено, если value не было null , и в этом случае 0 будет возвращено.
Changelog
Version | Description |
---|---|
8.0.0 | count () теперь будет вызывать TypeError для недопустимых счетных типов, переданных в параметр value . |
7.2.0 | count () теперь будет выдавать предупреждение о недопустимых счетных типах, переданных в параметр value . |
Examples
Пример # 1 отсчет () Пример
$a[0] = 1; $a[1] = 3; $a[2] = 5; var_dump(count($a)); $b[0] = 7; $b[5] = 9; $b[10] = 11; var_dump(count($b)); ?>
Выводится приведенный выше пример:
Пример # 2 count () non Countable | пример массива (плохой пример — не делайте этого)
$b[0] = 7; $b[5] = 9; $b[10] = 11; var_dump(count($b)); var_dump(count(null)); var_dump(count(false)); ?>
Выводится приведенный выше пример:
Вывод приведенного выше примера в PHP 7.2:
int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 int(1)
Вывод приведенного выше примера в PHP 8:
int(3) Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12
Пример # 3 Рекурсивный подсчет () Пример
$food = array('fruits' => array('orange', 'banana', 'apple'), 'veggie' => array('carrot', 'collard', 'pea')); // recursive count var_dump(count($food, COUNT_RECURSIVE)); // normal count var_dump(count($food)); ?>
Выводится приведенный выше пример:
Пример # 4 Счетный объект
class CountOfMethods implements Countable < private function someMethod( ) < >public function count( ): int < return count(get_class_methods($this)); > > $obj = new CountOfMethods(); var_dump(count($obj)); ?>
Выводится приведенный выше пример:
See Also
- is_array () — Проверяет , является ли переменная массивом
- isset () — определяет, объявлена ли переменная и отличается от нуля
- empty () — определяет, пуста ли переменная
- strlen () — получает длину строки
- is_countable () — Проверяет, что содержимое переменной является счетным значением
- Arrays
PHP 8.2
(PHP 4 4.1.0,5,7,8)cosh Гиперболический косинус Возвращает гиперболический косинус числа num,определяемый как (exp(arg)exp(-arg))/2.
(PHP 4,5,7,8)count_chars Возвращает информацию об использованных символах string Подсчитывает количество вхождений каждого байта-значения (0..255)в строке и возвращает
(PHP 4 4.0.1,5,7,8)crc32 Вычисляет полином строки Генерирует полином контрольной суммы циклической избыточности строки 32-битной длины.
Ограничение размера массива в PHP
Я задаюсь вопросом, существует ли ограничение размера для массива в php 5? Я написал сценарий php, чтобы изменить последний элемент каждой строки в файле. распечатайте содержимое измененного файла , когда я запускаю скрипт в файле небольшого размера (т.е. каждая строка содержит 4 значения), он будет работать. Когда я запускаю его в более крупном файле (например, 60000 строк, каждый из которых содержит 90 значений), он не изменяет бит исходного файла, но сценарий не выдавал никакого сообщения об исключении во время выполнения. Что это за проблема?
Solutions Collecting From Web of «Ограничение размера массива в PHP»
У вас может быть нехватка памяти, так как размер вашего массива (теоретически) ограничен только объемом памяти, выделенной для скрипта. Поместите ini_set(‘memory_limit’, ‘1024M’); в начале вашего скрипта установить ограничение на 1 ГБ. Возможно, вам понадобится увеличить это еще выше для достижения наилучших результатов.
Поскольку manyxcxi говорит, что вам, вероятно, придется увеличить memory_limit. Иногда вы также можете уменьшить использование памяти, отключив большие переменные с unset ($ var). Это необходимо только тогда, когда переменная остается в области далеко за ее последней точкой использования.
Вы случайно читаете весь файл, транслируете его, а затем записываете новый файл? Если это так, вы можете уменьшить использование памяти, работая в цикле, где вы читаете небольшую часть, обрабатываете ее и записываете и повторяете, пока не дойдете до конца файла. Но только если алгоритму преобразования не нужен весь файл, чтобы преобразовать небольшую часть.
- Почему .htaccess перенаправляет URL-адрес маршрутизации, но разрывает ссылки css / js / image после двух уровней в глубину?
- Как получить последний вставленный идентификатор таблицы MySQL в PHP?
- Как я могу разобрать JSON-файл с PHP?
- PHP: преобразовать строку пары значений, разделенных запятыми, в массив
- Настройка нескольких языков wordpress
- Категории и подкатегории с php, mysql и smarty
- В чем разница между find () findOrFail () first () firstOrFail
- Пользовательские сообщения об исключении: лучшие практики
- Добавьте заголовок к каждому запросу с использованием .htaccess
- Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, массив указан в
- Как продолжить процесс после ответа на запрос ajax в PHP?
- Добавление нескольких конфигурационных массивов в PhalconPHP
- Проблема PHP Phar – file_exists ()
- Подтверждение страны / города / штата
- Дата чтения человеком с использованием PHP