$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...
这个怎么样:
$Show = array();
foreach ($result_radio as $Station => $Show){
$Show [$result_radio[$Station]['StationID']][] = $Show; }
它应该完全符合您的要求。
你也可以编写一个函数,如:
function _group_by($array, $key) {
$return = array();
foreach($array as $val) {
$return[$val[$key]][] = $val;
}
return $return;
}