blackseabreathe
@blackseabreathe
brackets

Почему foreach возвращает результат только последней итерации?

<input type="file" name="ava" id="ava" multiple accept="image/jpeg,image/JPEG,image/jpg,image/JPG,image/png,image/PNG,image/bmp,image/BMP,image/heic,image/HEIC">


function upload_us($file){
$uploaddir = $_SERVER['DOCUMENT_ROOT'].'/user_upload/';
if(!is_dir( $uploaddir)) mkdir($uploaddir, 0777);


$files = array($_FILES['ava']);
foreach($_FILES['ava'] as $k => $l) {
foreach($l as $i => $v) {
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {

$fileName = date('YmdHis').'_'.translit($file['name']);
}

$count = count($fileName); // count после цикла
echo json_encode(['error' => $count], JSON_UNESCAPED_UNICODE); //возвращает 1, хотя в input загрузил 3 файла точно, не важно сколько файлов в input всегда вернет 1 еще выводил не кол-во, а имена файлов и всегда возвращается имя только последнего файла в input
exit; // exit - на время теста


}
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
New_Horizons
@New_Horizons
Бред:
foreach ничего никогда не возвращает, для начала.
Дальше, чтобы получить массив файлов, нужно указывать у инпута name="ava[]".
В $_FILES['ava'] уже будет массив.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы