我有以下问题:
我有一个看起来像这样的php数组:
Array (
[0] => Array (
[0] => Array ( [sales_count] => 2 )
[1] => Array ( [customer_id] => 1 )
)
[1] => Array (
[0] => Array ( [sales_count] => 3 )
[1] => Array ( [customer_id] => 2 )
)
)
现在如果我在这个数组上使用json_encode,我得到以下结果:
[[{"sales_count":"2"},{"customer_id":"1"}],[{"sales_count":"3"},{"customer_id":"2"}]]
但是,我正在尝试获得以下输出:
[{"sales_count":"2","customer_id":"1"},{"sales_count":"3","customer_id":"2"}]
我怎样才能做到这一点? 我已经阅读了很多类似的问题,我用他们的答案来达到这一点,但是我找不到这个输出的解决方案。
提前多多感谢!
答案 0 :(得分:4)
这是因为原始数组中的索引0和1
中有两个数组你需要做这样的事情
$masterArray = Array (
[0] => Array (
[0] => Array ( [sales_count] => 2 )
[1] => Array ( [customer_id] => 1 )
)
[1] => Array (
[0] => Array ( [sales_count] => 3 )
[1] => Array ( [customer_id] => 2 )
)
);
$json_array = array_merge($masterArray[0], $masterArray[1]);
echo json_encode($json_array);
$masterArray
的语法可能错误,但遵循这个概念。
答案 1 :(得分:2)
应该是:
$data = array(
array("sales_count" => 2),
array("customer_id" => 1),
array("sales_count" => 2),
array("customer_id" => 1),
);
json_encode($data);
为了达到预期的产量。
但是如果你的数组是正确的,你可以通过
访问你的json对象var data = [
[
{"sales_count":"2"},
{"customer_id":"1"}
],
[
{"sales_count":"3"},
{"customer_id":"2"}
]
];
data[0][0].sales_count will access sales_count = 2 on your 1st array.
答案 2 :(得分:2)
好吧,你可以重组它们并把它们放在一个新的里面。例如:
$new_array = array();
array_walk_recursive($array, function($val, $key) use (&$new_array) {
$new_array[] = array($key => $val);
});
$new_array = json_encode($new_array);
echo '<pre>';
print_r($new_array);
// [{"sales_count":2},{"customer_id":1},{"sales_count":3},{"customer_id":2}]
或者只是一个简单的循环,简单地说,将它们推入内部:
$new_array = array();
foreach($array as $values) {
foreach($values as $val) {
$new_array[] = $val;
}
}
echo json_encode($new_array);
上面的示例输出。
答案 3 :(得分:2)
我来自越南。我的英语不好。所以,我写了这段代码。我希望这对你有帮助。
$arr = array(
0 => array(0 => array('sales_count'=>2),1 => array('customer_id' => 1)),
1 => array(0 => array('sales_count'=>3),1 => array('customer_id' => 2)),
);
$new_arr = array();
foreach($arr as $key => $value){
foreach($value as $kvalue => $vvalue){
$new_arr[] = $vvalue;
}
}
print_r(json_encode($new_arr));