私はあなたにSQL出力を持っていないので、私は配列を作成し、あなたの配列と同じ機能を持った独自のコードを作ります。
PHP
$arr = array(array("id" => "bd", "mon" => "1", "cost" => "224787"),
array("id" => "nk", "mon" => "1", "cost" => "721102"),
array("id" => "bd", "mon" => "2", "cost" => "440399"),
array("id" => "nk", "mon" => "2", "cost" => "898020"),
array("id" => "bd", "mon" => "3", "cost" => "363543"),
array("id" => "nk", "mon" => "3", "cost" => "878250"),
);
$output_arr = array();
$tmp = 0;
foreach($arr as $key => $value){
if($tmp == 0 || $tmp != $value['mon'])
$output_arr[$value['mon']][mon] = $value['mon'];
if($value['id'] == 'bd')
$output_arr[$value['mon']][$value['id']] = $value['cost'];
if($value['id'] == 'nk')
$output_arr[$value['mon']][$value['id']] = $value['cost'];
$tmp = $value['mon'];
}
echo "<pre>";
print_r($output_arr);
echo "</pre>";
出力
Array
(
[1] => Array
(
[mon] => 1
[bd] => 224787
[nk] => 721102
)
[2] => Array
(
[mon] => 2
[bd] => 440399
[nk] => 898020
)
[3] => Array
(
[mon] => 3
[bd] => 363543
[nk] => 878250
)
)
私はすでにあなたのSQLの出力と答えています。あなたのSQLの例を考えてみましょう。
PHP
$output_arr = array();
//Your sql
$sql = "select sale_plc
, month(sale_date) as mon
, sum(sale_cost) as cost
from daily_sales
where year(sale_date)='2016'
group
by year(sale_date)
, month(sale_date)
, sale_plc
order
by month(sale_date)
, sale_plc asc
LIMIT 0, 30";
$tmp = 0;
$i = 0;
$qry = mysqli_query($conn, $sql);
while ($obj = mysqli_fetch_object($qry)){
if($tmp == 0 || $tmp != $obj->mon)
$output_arr[$obj->mon][mon] = $obj->mon;
if($obj->id == 'bd')
$output_arr[$obj->mon][$obj->id] = $obj->cost;
if($obj->id == 'nk')
$output_arr[$obj->mon][$obj->id] = $obj->cost;
$tmp = $obj->mon;
}
print_r($output_arr);
出力:
Array(
[1] => Array
(
[mon] => 1
[bd] => 224787
[nk] => 721102
)
[2] => Array
(
[mon] => 2
[bd] => 440399
[nk] => 898020
)
[3] => Array
(
[mon] => 3
[bd] => 363543
[nk] => 878250
)
)
何らかの問題が、その後、私に教えてください場合は、この答えを試してみてください。
'mysql'または' sql-server'ですか?それらは同じものではなく、クエリの構文を変更する可能性があります。 – Sean
私はsql-queryタグの構文に基づいてsql-serverタグを削除しました。特に、MySqlに属しSql-Serverでは使用できない 'Limit'キーワードです。 –
これはPHP – Strawberry