配列の順番を変えずに値を変える[PHP]
配列の順番を変えずに、値を変えたい場合があります
下記のような配列があります
print_r($arr);
/*
Array
(
[0] => red
[1] => light_green
[2] => deep_blue
[3] => pink
[4] => white
)
*/
これをこのような配列にしたいとします
print_r($arr);
/*
Array
(
[0] => red
[1] => green
[2] => blue
[3] => pink
[4] => black
)
*/
これを解決するために2つの関数をつかいます
$arr = array("red", "light_green", "deep_blue", "pink", "white");
$replacements = array(
array_search("light_green", $arr) => "green",
array_search("deep_blue", $arr) => "blue",
array_search("white", $arr) => "black"
);
$arr_replace = array_replace($arr, $replacements);
print_r($arr_replace);
/*
Array
(
[0] => red
[1] => green
[2] => blue
[3] => pink
[4] => black
)
*/
array_search()
hogeがvalueのとき、添字のkeyを取得できますarray_replace()
valueを別の値に変えられます
配列の順番(添字)を変えたくないときに重宝します
これらを組み合わせると添字配列のvalueを別の値にできます