Выполнить функцию для каждого элемента массива

1-ый способ

Выполнить функцию для каждого элемента массива можно через функцию array_map().

$array = ['php', 'mysql'];
 
# сделать все элементы массива прописными буквами
function do_upper($arr) {
    return mb_strtoupper($arr, 'UTF-8');
}

$array_upper = array_map('do_upper', $array);

$array_upper; // [PHP, MYSQL]

2-ой способ: заменить текущие элементы массивы

Функция array_map() возвращает новый массив, не затрагивая исходный массив. Также есть функция array_walk(), которая заменяет элементы в указанном массиве, применяя к ним указанную функцию.

$array = ['php', 'mysql'];
 
# сделать все элементы массива прописными буквами
function do_upper(&$arr) {
    $arr = mb_strtoupper($arr, 'UTF-8');
}
 
array_walk($array, 'do_upper');

$array; // [PHP, MYSQL]

2-ой способ

Также можно использовать цикл foreach через символ &.

$array = [2, 4, 6];
foreach ($array as &$arr) {
    $arr *= 2;
}
unset($arr);

// array(4, 8, 12)

На примере выше удаляется переменная $arr, чтобы случайно не изменить последний элемент массива в другом коде.