public function testSfMakeHiddenArray__多段配列が1次元配列に変換される() { $input_array = array('vegetable' => '野菜', 'fruit' => array('apple' => 'りんご', 'banana' => 'バナナ'), 'drink' => array('alcohol' => array('beer' => 'ビール'), 'water' => '水'), 'rice' => '米'); $this->expected = array('vegetable' => '野菜', 'fruit[apple]' => 'りんご', 'fruit[banana]' => 'バナナ', 'drink[alcohol][beer]' => 'ビール', 'drink[water]' => '水', 'rice' => '米'); $this->actual = SC_Utils::sfMakeHiddenArray($input_array); $this->verify(); }
function sfMakeHiddenArray($arrSrc, $arrDst = array(), $parent_key = "") { if (is_array($arrSrc)) { foreach ($arrSrc as $key => $val) { if ($parent_key != "") { $keyname = $parent_key . "[" . $key . "]"; } else { $keyname = $key; } if (is_array($val)) { $arrDst = SC_Utils::sfMakeHiddenArray($val, $arrDst, $keyname); } else { $arrDst[$keyname] = $val; } } } return $arrDst; }