0 レビュー
1 回答
jsonデータを適切なものにするにはphpで配列形式が必要です
phpでjsonデータを取得し、 echo "<pre>";
とprint_rの後にこのように-(これは小さなデータであり、非常に大きなデータを取得しています)
Array
(
[0] => Array
(
[id] => 0
[date] => 2015-05-30
[total] => 8
)
[1] => Array
(
[id] => 0
[date] => 2015-05-31
[total] => 4
)
[2] => Array
(
[id] => 4863
[date] => 2015-05-30
[total] => 183
)
[3] => Array
(
[id] => 4863
[date] => 2015-05-31
[total] => 140
)
[4] => Array
(
[id] => 5126
[date] => 2015-05-30
[total] => 131292
)
)
要件- この表形式でデータを表示したい->
id 2015-05-30 2015-05-31 difference <br/>
0 8 4 -4 <br/>
4863 183 140 -43 <br/>
5126 131292 <br/>
わからない
0
レビュー
答え :
解決策:
このデータはデータベースに保存されているように見えるので、データが常に2つの日付からのものであり、それらの順序で並べられていることを確認できると思います(例の配列のように) 。
この場合、私はおそらく次のようにします:
$array = array(array('id' => 0, 'date' => '2015-05-30', 'total' => 8),
array('id' => 0, 'date' => '2015-05-31', 'total' => 4),
array('id' => 4863, 'date' => '2015-05-30', 'total' => 183),
array('id' => 4863, 'date' => '2015-05-31', 'total' => 140),
array('id' => 5126, 'date' => '2015-05-30', 'total' => 131292));
$newArray = array();
$dates = array();
foreach($array as $entry) {
if(!isset($newArray[$entry['id']])) $newArray[$entry['id']] = array();
if(!in_array($entry['date'], $dates)) array_push($dates, $entry['date']);
array_push($newArray[$entry['id']], array($entry['total'], $entry['date']));
}
echo "id " . $dates[0] . " " . $dates[1] . " " . "difference <br/>";
foreach($newArray as $id => $entry) {
echo $id . " " . (($entry[0][1]==$dates[0]) ? $entry[0][0] . " " . $entry[1][0] : " " . $entry[0][0]) . " " . ((count($entry) == 2) ? $entry[1][0]-$entry[0][0] : "") ." <br>";
}
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。