Iam使用CI开发应用程序。我遇到了问题,我需要帮助。这是我的问题。 我有一个用php生成的数组:
Array
(
[0] => Array
(
[0] => 3
[1] => 0
)
[1] => Array
(
[0] => 2
[1] => 0
)
[2] => Array
(
[0] => 1
[1] => 246
)
[3] => Array
(
[0] => 0
[1] => 4528
)
)
这是在数组上面创建的代码。
public function get_previous_months_total()
{
$f = 1;
$dataset2 = array();
$result;
for($i=0;$i<4;$i++){
$firstday = mktime(0, 0, 0, date('m')-$f, 1, date('Y'));
$lastday = mktime(0, 0, 0, date('m')-$i, 0, date('Y'));
$end = date("Y-m-d", $lastday);
$start = date("Y-m-d", $firstday);
$f++;
$result = $this->LineChart_Model->get_months_total($start,$end);
foreach ($result as $return_result ){
$dataset2[] = array($i,int)$return_result['SUM(operation_production)']);
}
}
$mon = array(array_reverse($dataset2));
return $mon;
}
以下是模型中的代码。
public function get_months_total($start,$end){
$sql = "SELECT SUM(operation_production) FROM plant WHERE date BETWEEN '".$start."' AND '".$end."' ORDER BY operation_id DESC";
$result = $this->linechart_db->query($sql);
return $result->result_array();
}
之后我使用json_encode对其进行编码,它给出了以下结果:
var total = [
[
3,
0
],
[
2,
0
],
[
1,
246
],
[
0,
4528
]
];
我需要将订单更改为:
var total = [
[
0,
0
],
[
1,
0
],
[
2,
246
],
[
3,
4528
]
];
请帮我解决这个问题。我尝试了很多方法,但都没有。任何帮助都非常感谢。
答案 0 :(得分:1)
您应该能够使用array_mulisort()函数来解决此问题。
**编辑:
进一步调查后,array_multisort()函数不会给你答案,我道歉。
由于数组的值已经设置,因此您必须操纵它们才能获得所需的结果。这对我有用(在你的代码中只需用你的数组名称替换$ oldArray变量):
$replacementArray = array();
$i = 0;
foreach($oldArray as $array) {
$newArray =[$i, $array[1]];
array_push($replacementArray, $newArray);
$i++;
}
$finalArray = array_replace($oldArray, $replacementArray);
$json = json_encode($finalArray);
echo $json;
这将提供以下输出:
[[0,0],[1,0],[2,246],[3,4528]]