PHP の配列操作で array_map を使う時に index を使う方法
array_map のコールバック変数に index の配列を渡す
array_map(?callable $callback, array $array, array ...$arrays): array
array_map()
returns an array containing the results of applying the callback to the corresponding value ofarray
(and arrays if morearrays
are provided) used as arguments for thecallback
. The number of parameters that the callback function accepts should match the number of arrays passed toarray_map()
. Excess input arrays are ignored. AnArgumentCountError
is thrown if an insufficient number of arguments is provided.
cf. PHP: array_map - Manual
array_map
のコールバック関数は第2引数以降の配列の値を順番に引数に取るので、第2引数に実際の配列、第3引数に range
を使って作成したインデックスの配列を渡せば良い
<?php $array = ['紅林珠璃', '天羽まどか', '黒沢凛']; $result = array_map(function($value, $index) { return $index . '. ' . $value; }, $array, range(1, count($array))); var_dump($result);
👇
array(3) { [0]=> string(15) "1. 紅林珠璃" [1]=> string(18) "2. 天羽まどか" [2]=> string(12) "3. 黒沢凛" }
ポイントは range
の初期値を 1
にすることで index を 1 始まりにできる
0
からの値が欲しい場合は第3引数を range(0, count($array) - 1)
とするかコールバック内で $index - 1
とするか
JavaScript ばかり触ってるから PHP は感覚が違ってムズぃ…
おわり
[参考]
バニラチリペッパー大好き〜