PHP - Есть ли способ запустить значения массива через функции строки / файловой системы без цикла for? - PullRequest
0 голосов
/ 22 февраля 2019

Я все еще немного зелен, поэтому, пожалуйста, прости меня, если есть очевидный ответ на этот вопрос.По сути, мне интересно, есть ли лучший, более сокращенный способ сделать это:

$file_ext = array();
$cust_file = $_FILES["cust_file"]["name"];

for ($i = 0; $i <= 4; $i++) {
    $cust_img_type = strtolower(pathinfo($cust_file[$i],PATHINFO_EXTENSION));
    array_push($file_ext,$cust_img_type);
    }

Я искал ответ и, насколько я могу судить, вы просто не можете просто преобразоватьвесь массив с функцией, как вы можете с отдельными переменными.Кто-нибудь может подтвердить / опровергнуть?Я чувствую, что это много кода, просто чтобы вытянуть расширение файла из массива почтовых данных.

Спасибо!

1 Ответ

0 голосов
/ 22 февраля 2019

Просто сопоставьте каждый элемент массива с функцией:

$file_ext = array_map(function($v) {
                          return strtolower(pathinfo($v, PATHINFO_EXTENSION));
                      }, $cust_file);

Когда вам не нужны аргументы для функции, это проще:

$file_ext = array_map('strtolower', $cust_file);
...