我基於標籤關聯來預測用戶興趣。這些關聯將使用ChartJS繪製在多線圖中。我達到了數據格式幾乎可以在客戶端使用的程度。PHP中的高級陣列重建
不要被數組的大小嚇到。我的問題很簡單,但很難解決,所以看來。
考慮以下陣列(包括示例數據):
array:3 [▼
"timespan" => "day",
"labels" => array:3 [▼ // Date labels based on timespan
0 => "2016-06-10"
1 => "2016-06-11"
2 => "2016-06-12"
],
"data" => array:2 [▼
0 => array:3 [▼
"id" => 16473,
"name" => "FooTag"
"timeline" => array:3 [▼
0 => array:3 [▼
"Date" => "2016-06-10"
"Frequency" => 2
"Score" => 4.0
]
1 => array:3 [▼
"Date" => "2016-06-12"
"Frequency" => 2
"Score" => 4.0
]
]
]
1 => array:3 [▼
"id" => 10814,
"name" => "BarTag"
"timeline" => array:1 [▼
0 => array:3 [▼
"Date" => "2016-06-10"
"Frequency" => 2
"Score" => 3.0
],
1 => array:3 [▼
"Date" => "2016-06-11"
"Frequency" => 10
"Score" => 20.0
]
]
]
]
]
...確保每一個日期標籤(2016年6月10日,206-06-11,2016年6月12日)被覆蓋對於data[i][timeline]
內的每個時間軸。如果在特定日期標籤的時間線中沒有可用數據,則必須插入一個空數組。
其結果將是:
array:3 [▼
"labels" => array:3 [▼ // Date labels based on timespan
0 => "2016-06-10"
1 => "2016-06-11"
2 => "2016-06-12"
]
"timespan" => "day"
"data" => array:2 [▼
0 => array:3 [▼
"id" => 16473,
"name" => "FooTag"
"timeline" => array:3 [▼
0 => array:3 [▼
"Date" => "2016-06-10"
"Frequency" => 2
"Score" => 4.0
],
1 => array:0 [], // No data for label 2016-06-11, empty array added
2 => array:3 [▼
"Date" => "2016-06-12"
"Frequency" => 2
"Score" => 4.0
]
]
]
1 => array:3 [▼
"id" => 10814,
"name" => "BarTag"
"timeline" => array:1 [▼
0 => array:3 [▼
"Date" => "2016-06-10"
"Frequency" => 2
"Score" => 3.0
],
1 => array:3 [▼
"Date" => "2016-06-11"
"Frequency" => 10
"Score" => 20.0
],
2 => array:0 [], // No data for label 2016-06-12, empty array added
]
]
]
]
在這種情況下,每一個相關的標籤有數據爲每一個日期。否則數據(頻率和分數)與繪製圖表時的正確日期不符。
我希望這樣做。提前致謝!
聽起來像結果將涉及['array_splice'(HTTP: //php.net/manual/en/function.array-splice.php)。嘗試解決這個問題,就好像你只處理一個'$ timeline'數組和一個'$ labels'數組一樣。一旦你解決了問題,應該會更容易一些。 –