php 配列で指定した添え字の前に値を追加
2012/03/19
「array("aaa"=>"トマト", "bbb"=>"みかん", "ddd"=>"カジカ")」を
「array("aaa"=>"トマト", "bbb"=>"みかん", "ccc"=>"マトン", "ddd"=>"カジカ")」
としたい。
「array("aaa"=>"トマト", "bbb"=>"みかん", "ccc"=>"マトン", "ddd"=>"カジカ")」
としたい。
- /**
- * 指定したキーの前に値を追加:オリジナル配列・キー・追加配列
- * @param array $ary 元の配列
- * @param string $key 追加したい箇所(このキーの前に追加)
- * @param array $addAry 追加するデータ(0:キー, 1:値)
- */
- function array_add_selectkey($ary, $key, $addAry)
- {
- $temp = array();
- foreach ($ary as $k=>$v)
- {
- if ($key == $k)
- {
- $temp[$addAry[0]] = $addAry[1];
- }
- $temp[$k] = $v;
- }
- return $temp;
- }
- $tmp = array("aaa"=>"トマト", "bbb"=>"みかん", "ddd"=>"カジカ");
- $ary = array_add_selectkey($tmp, "ddd", array("ccc", "マトン"));
もっと良いやり方があるとは思うんだけど…。
内容としては、配列を回して対象の添え字になったら値を追加って感じ。