Длина суперглобального массива PHP - PullRequest
1 голос
/ 18 марта 2011

Можно ли проверить, сколько элементов находится в $ _FILES [], используя некоторый тип length () или size ()?

Ответы [ 3 ]

7 голосов
/ 18 марта 2011

Это обычный массив, помимо того, что он суперглобальный - просто используйте count($_FILES).

Для подсчета успешно загруженных файлов вы можете сделать следующее в PHP5.3:

$successCount = array_reduce($_FILES, function($val, $file) {
    if($file['error'] == UPLOAD_ERR_OK) return $val + 1;
    return $val;
}, 0);

В старых версиях PHP самый простой способ (я считаю, что имена строковых функций для обратных вызовов безобразны) будет использовать простой цикл:

$count = 0;
foreach($_FILES as $file) {
    if($file['error'] == UPLOAD_ERR_OK) $count++;
}
0 голосов
/ 18 марта 2011

в именованных полях для загрузки есть 2 способа.
В то время как filename[] сделает этот массив беспорядочным, filename1, filename2 и т. Д. Заставят массив $ _FILES вести себя так, как вы ожидаете, и count ($ _ FILES) вернет количество полей ввода

Если вы не знаете структуру массива, вы должны использовать print_r($_FILES), чтобы сначала увидеть его, а затем решить, что вы хотите считать.

Также обратите внимание, что имя массива $_FILES, а не $_FILES[], как вы упомянули. Это оператор, а не имя массива.

0 голосов
/ 18 марта 2011

Функция count () делает это: http://php.net/manual/en/function.count.php

$c = count($_FILES);

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