我只需要在一个数组中打印数据。下面是我的数组
Array (
[sales_data] => Array (
[0] => Array (
[dealer] => DS949
[value] => 35
[mod_id] => s01
[month] => Oct
[year] => 16
),
[1] => Array (
[dealer] => DS950
[value] => 80
[mod_id] => s01
[month] => Oct
[year] => 16
),
[2] => Array (
[dealer] => DS949
[value] => 25
[mod_id] => s01
[month] => Sep
[year] => 16
),
[3] => Array (
[dealer] => DS950
[value] => 55
[mod_id] => s01
[month] => Sep
[year] => 16
)
)
)
在上面的数组中看到它显示的月份是10月2次和9月2次但经销商不同而且价值不同所以,我需要一个数组中的Oct数据和一个数组中的Sep数据两个月。
Array (
[sales_data] => Array (
[0] => Array (
[dealer] => DS949
[value] => 35
[dealer] => DS950
[value] => 80
[mod_id] => s01
[month] => Oct
[year] => 16
),
[1] => Array (
[dealer] => DS949
[value] => 25
[dealer] => DS950
[value] => 55
[mod_id] => s01
[month] => Sep
[year] => 16
)
)
)
这是我的代码:
$all_custom_data = $this->front_model->get_period_data($mod_id,$month,$year,$manu,$city);
array_push($all_custom_dataarr, $all_custom_data);
}
$arrFinal=array();
$i=0;
$month=array();
foreach($all_custom_dataarr as $custom_data1){
foreach($custom_data1 as $custom_data){
$month[]=$custom_data->month;
$arrFinal[$i]['dealer']=$custom_data->dealer;
$arrFinal[$i]['value']=$custom_data->value;
$arrFinal[$i]['mod_id']=$custom_data->mod_id;
$arrFinal[$i]['month']=$custom_data->month;
$arrFinal[$i]['year']=$custom_data->year;
$i++;
}
}
$data['sales_data']=array_unique($arrFinal, SORT_REGULAR);
print_r($data);
答案 0 :(得分:0)
Amrinder,我认为这是组织阵列的最佳方式,以便您可以删除重复项并在将来轻松访问阵列。
$all_custom_dataarr=array(
"sales_data"=>array(
0=>array(
"dealer"=>"DS949",
"value"=>"35",
"mod_id"=>"s01",
"month"=>"Oct",
"year"=>"16"
),
1=>array(
"dealer"=>"DS950",
"value"=>"80",
"mod_id"=>"s01",
"month"=>"Oct",
"year"=>"16"
),
2=>array(
"dealer"=>"DS949",
"value"=>"25",
"mod_id"=>"s01",
"month"=>"Sep",
"year"=>"16"
),
3=>array(
"dealer"=>"DS950",
"value"=>"55",
"mod_id"=>"s01",
"month"=>"Sep",
"year"=>"16"
)
)
);
foreach($all_custom_dataarr["sales_data"] as $array){
$new_array[$array["year"]][$array["month"]][$array["dealer"]]["mod_id"]=$array["mod_id"];
$new_array[$array["year"]][$array["month"]][$array["dealer"]]["value"]=$array["value"];
}
echo "<pre>";
var_export($new_array);
echo "</pre>";
...产量
$new_array = array(
16 => array(
'Oct' => array(
'DS949' => array('mod_id'=>'s01','value'=>'35'),
'DS950' => array('mod_id'=>'s01','value'=>'80')
),
'Sep' => array(
'DS949' => array('mod_id'=>'s01','value'=>'25'),
'DS950' => array('mod_id'=>'s01','value'=>'55'),
),
),
);
此数组结构允许您使用唯一键对值和子数组进行逻辑分组。
如果有任何重复的year-month-dealer-mod_id
或year-month-dealer-value
值,它们将覆盖之前的值(因为在foreach循环中构建新数组)。
如果您有多年,或多个月或多个经销商,数据将被分开 并且由于新的关联键名称而易于访问。
例如,如果您特别想知道mod_id
value
中DS950
的{{1}}和Oct
值,请使用:
16
和$new_array["16"]["Oct"]["DS950"]["mod_id"]
或
$new_array["16"]["Oct"]["DS950"]["value"]