php 配列で指定した添え字の前に値を追加

2012/03/19
「array("aaa"=>"トマト", "bbb"=>"みかん", "ddd"=>"カジカ")」を
「array("aaa"=>"トマト", "bbb"=>"みかん", "ccc"=>"マトン", "ddd"=>"カジカ")」
としたい。

  1. /**
  2. * 指定したキーの前に値を追加:オリジナル配列・キー・追加配列
  3. * @param array $ary  元の配列
  4. * @param string $key  追加したい箇所(このキーの前に追加)
  5. * @param array $addAry 追加するデータ(0:キー, 1:値)
  6. */
  7. function array_add_selectkey($ary, $key, $addAry)
  8. {
  9.  $temp = array();
  10.  foreach ($ary as $k=>$v)
  11.  {
  12.   if ($key == $k)
  13.   {
  14.    $temp[$addAry[0]] = $addAry[1];
  15.   }
  16.   $temp[$k] = $v;
  17.  }
  18.  return $temp;
  19. }
  20.  
  21. $tmp = array("aaa"=>"トマト", "bbb"=>"みかん", "ddd"=>"カジカ");
  22. $ary = array_add_selectkey($tmp, "ddd", array("ccc", "マトン"));

もっと良いやり方があるとは思うんだけど…。
内容としては、配列を回して対象の添え字になったら値を追加って感じ。

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。