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