具有关联数组的array_push导致多维数组

时间:2014-07-26 22:37:05

标签: php json array-push

我有以下函数可以执行一些操作并返回一个数组:

function do_work($array){ 
      $result = array();

      array_push($result, array("HAHAHAH" => "looooooool"));

      foreach($array as $key=>$val){
          array_push($result, array($key => $val));
      }

      return $result;
}

我最初调用它并在其中传递$_GET数组。我最终期望的是一个扁平的JSON对象。但这会返回一个JSON数组:

在我的通话代码中:

$array = do_work($_GET);
 echo json_encode($array);

如果我在GET数组后面给出函数:

handler.php?action=register_new_user&shit=happens

这将是结果,但我希望它是一个扁平的JSON而不是数组:

[{"HAHAHAH":"looooooool"},{"action":"register_new_user"},{"shit":"happens"}]

1 个答案:

答案 0 :(得分:2)

array_push将内容推送到数组的末尾,然后将数组推到数组的末尾,这意味着您正在创建一个多维数组。

如果要合并两个数组,请使用array_merge或直接设置值,如果它是单个值:

$foo = array('one' => 1, 'two' => 2);
$bar = array('three' => 3, 'four' => 4);
$foobar = array_merge($foo, $bar);

// otherwise
$foo['three'] = 3;