Anton
Anton

Reputation: 23

PHP - Is there a way to run array values through string/filesystem functions without a for loop?

I'm still a little green so please forgive me if there's an obvious answer to this question. Basically, I'm wondering if there's a better, more abbreviated way, to do- this:

$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);
    }

I have searched for an answer and as far as I can tell you simply can't just transform an entire array with a function like you can with single variables. Can anyone confirm/deny? I feel like that's a lot of code just to pull the file extension out an array of post data.

Thanks!

Upvotes: 2

Views: 50

Answers (1)

AbraCadaver
AbraCadaver

Reputation: 79004

Just map each element of the array to a function:

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

When you don't need arguments to the function it is simpler:

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

Upvotes: 1

Related Questions