array_mapの第3引数にrange
関数で数字の配列を作って渡すと配列自身のindexを渡しているわけではありませんが、良い感じになります。
その場合は第2引数引数と同じ要素数じゃないといけません。
<?php
$array = ['Laala', 'Mirei', 'Sophie'];
$withNumberArray = array_map(function ($name, $index) {
return sprintf('%d. %s', $index, $name);
}, $array, range(1, count($array)));
var_dump($withNumberArray);
array(3) {
[0]=>
string(8) "1. Laala"
[1]=>
string(8) "2. Mirei"
[2]=>
string(9) "3. Sophie"
}