public function pom() { $array = [25, 12, 5, 82, 15]; $result = 0; for($i = 0; $i < count($array); $i++) { $first = str_split($array[$i]); if(is_numeric($first[0])) $result += $first[0]; } return $result; }funciona así, pero la pregunta dice que no puedo usar cadenas. ¿Significa que no puedo usar str_split?
Puede hacerlo con substr array_map() y array_sum() ,
<?php $array = [25, 12, 5, 82, 15]; function sum_first_digit($array) { $sum = array_sum(array_map(function ($a){return substr($a,0,1);}, $array)); return $sum; } echo sum_first_digit($array); ?>Salida : 17
Extraer el primer dígito sin el uso de una función de cadena significa, en mi opinión, solo usar cálculos. Ejemplo:
$n = 781234; $result = intdiv($n,pow(10,floor(log10($n)))); // 7