$Show = [];
foreach ($result_radio as $Station => $Show){
$Show [] = array($result_radio[$Station]['StationID'] => $Show); }
var_dump($Show)
//输出
array(19771) { // Number of Shows accross 182 Station
[0]=> array(1) { [24315]=> array(16) { ["StationID"]=>"24315" ["Show"]=> "JaazOnline" ["Genre"]=> "Jazz" ...
[1]=> array(1) { [24315]=> array(16) { ["StationID"]=>"24315" ["Show"]=> "Jaaz24/7" ["Genre"]=> "Jazz" ..
[2]=> array(1) { [24315]=> array(16) { ["StationID"]=>"24315" ["Show"]=> "JazzUsa" ["Genre"]=> "Jazz" ...
[3]=> array(1) { [66995]=> array(16) { ["StationID"]=>"66995" ["Show"]=> "StateofTrance" ["Genre"]=> "Electronic" ..
[4]=> array(1) { [66995]=> array(16) { ["StationID"]=>"66995" ["Show"]=> "ElectroHouse" ["Genre"]=> "Electronic"...
这会将19771个广播节目数组作为数组返回,其中$key
是关于此特定节目的 StationID 和值$Show
相关信息。
这就是我想要的,但我希望以某种方式格式化我的数组,而不是每个StationID只有一个数组,并且在属于此ID的所有节目中
例如
array(182) { // 182 Radio Stations
[24315]=> array(50) { //Shows classified by Station Id
array(16) { ["StationID"]=>"24315" ["Show"]=> "JaazOnline" ["Genre"]=> "Jazz" ...
array(16) { ["StationID"]=>"24315" ["Show"]=> "Jaaz24/7" ["Genre"]=> "Jazz" ..
array(16) { ["StationID"]=>"24315" ["Show"]=> "JazzUsa" ["Genre"]=> "Jazz" ...
[66995]=> array(32) {
array(16) {["StationID"]=>"66995" ["Show"]=> "StateofTrance" ["Genre"]=> "Electronic"
array(16) {["StationID"]=>"66995" ["Show"]=> "ElectroHouse" ["Genre"]=> "Electronic"
为什么呢?
因为我认为它让我的生活更方便客户端以这种方式访问对象属性..请任何一些帮助格式化这个节目数组的方式,让一个索引代表一个站ID,并在所有节目中... < / p>
答案 0 :(得分:1)
这个怎么样:
$Show = array();
foreach ($result_radio as $Station => $Show){
$Show [$result_radio[$Station]['StationID']][] = $Show; }
它应该完全符合您的要求。
答案 1 :(得分:1)
您还可以编写如下函数:
function _group_by($array, $key) {
$return = array();
foreach($array as $val) {
$return[$val[$key]][] = $val;
}
return $return;
}