PHPの関数array_map()を使うと、配列の要素にコールバック関数を適用することができます。
<?php
$array = [
"北海道",
"東日本",
"西日本",
];
$converted = array_map(function ($val) {
return "JR" . $val;
}, $array);
print_r($converted);
この例を実行すると次のようになります。
Array
(
[0] => JR北海道
[1] => JR東日本
[2] => JR西日本
)
北海道、東日本、などの文字列の頭にJRを付与、ですね。
ではそれぞれの配列の添え字、つまり0とか1とかをコールバック関数の中では使えるんでしょうか?
結論から言うと一工夫すると使えるわけで、次のようにします。
<?php
$array = [
"北海道",
"東日本",
"西日本",
];
$converted = array_map(function ($key, $val) {
return $key . "番目、JR" . $val;
}, array_keys($array), array_values($array));
print_r($converted);
そして出力
Array
(
[0] => 0番目、JR北海道
[1] => 1番目、JR東日本
[2] => 2番目、JR西日本
)
添え字を使って、0番目や1番目といった出力ができるようになりました。
重要なのは、array_mapの第二引数にarray_keys($array)でキー配列を配置、第三引数にarray_values($array)で値の配列を指定することです。
こうするとコールバック関数の引数の$keyと$valを活用することが可能になります。
----- 著 書 の 紹 介 ------
◆kyo asahinaの著書◆
PythonとQt5ではじめるGUIプログラミング for Windows (NKYS書房) Kindle版
テンプレートエンジンTwigを覚える本 Kindle版
Smarty 3を覚える本 Kindle版