我是PHP多维数组的新手,所以我需要100%的工作答案。。。
我曾经尝试过使用muli排序和usort函数,但它们对我不起作用,老实说,我不知道如何在多维数组的情况下使用它们!
在我的情况下(我是如何实现多重排序的),它只是对第一天的数组进行排序
Array (
[0] => Array (
[0] => Array (
[0] => Cycling
[1] => 03:30 PM-04:00 PM
[2] => Criterium International
[3] => 0.5
[4] => SN1
[5] => 100
[6] => 1459524600
)
[1] => Array (
[0] => Rugby
[1] => 03:00 PM-05:15 PM
[2] => Super League Rugby - Wolves v Warriors
[3] => 2.25
[4] => SNOverflow
[5] => 100
[6] => 1459522800
)
[2] => Array (
[0] => Rugby
[1] => 05:00am-07:30 AM
[2] => National Rugby League Titans vs Broncos
[3] => 2.5
[4] => SNWorld
[5] => 100
[6] => 1459485000
)
)
[1] => Array (
[0] => Array (
[0] => Rugby
[1] => 09:45 AM-12:00 PM
[2] => Super League Rugby - Red Devils v E
[3] => 2.25
[4] => SNOverflow
[5] => 100
[6] => 1459590300
)
[1] => Array (
[0] => Rugby
[1] => 12:00 PM-02:00 PM
[2] => Super League Rugby - Vikings v Dragons
[3] => 2
[4] => SNOverflow
[5] => 100
[6] => 1459598400
)
[2] => Array (
[0] => BPL Soccer
[1] => 07:30 AM-09:45 AM
[2] => Aston Villa v Chelsea
[3] => 2.25
[4] => SNRegions
[5] => 100
[6] => 1459582200
)
)
[2] => Array (
[0] => Array (
[0] => The Wheel Highlights
[1] => 11:00 PM-12:30 AM
[2] =>
[3] => 1.5
[4] => Sportsnet 360
[5] => 100
[6] => 1459724400
)
[1] => Array (
[0] => The Wheel Highlights
[1] => 10:00 PM-11:00 PM
[2] =>
[3] => 1
[4] => Sportsnet 360
[5] => 100
[6] => 1459720800
)
[2] => Array (
[0] => CHL Hockey
[1] => 06:00 PM-09:00 PM
[2] => Brandon @ Edmonton
[3] => 3
[4] => Sportsnet 360
[5] => 100
[6] => 1459706400
)
)
)
我想要的输出是这样的:
Array (
[0] => Array (
[0] => Array (
[0] => Rugby
[1] => 05:00am-07:30 AM
[2] => National Rugby League Titans vs Broncos
[3] => 2.5
[4] => SNWorld
[5] => 100
[6] => 1459485000
)
[1] => Array (
[0] => Rugby
[1] => 03:00 PM-05:15 PM
[2] => Super League Rugby - Wolves v Warriors
[3] => 2.25
[4] => SNOverflow
[5] => 100
[6] => 1459522800
)
[2] => Array (
[0] => Cycling
[1] => 03:30 PM-04:00 PM
[2] => Criterium International
[3] => 0.5
[4] => SN1
[5] => 100
[6] => 1459524600
)
)
[1] => Array (
[0] => Array (
[0] => BPL Soccer
[1] => 07:30 AM-09:45 AM
[2] => Aston Villa v Chelsea
[3] => 2.25
[4] => SNRegions
[5] => 100
[6] => 1459582200
)
[1] => Array (
[0] => Rugby
[1] => 09:45 AM-12:00 PM
[2] => Super League Rugby - Red Devils v E
[3] => 2.25
[4] => SNOverflow
[5] => 100
[6] => 1459590300
)
[2] => Array (
[0] => Rugby
[1] => 12:00 PM-02:00 PM
[2] => Super League Rugby - Vikings v Dragons
[3] => 2
[4] => SNOverflow
[5] => 100
[6] => 1459598400
)
)
[2] => Array (
[0] => Array (
[0] => CHL Hockey
[1] => 06:00 PM-09:00 PM
[2] => Brandon @ Edmonton
[3] => 3
[4] => Sportsnet 360
[5] => 100
[6] => 1459706400
)
[1] => Array (
[0] => The Wheel Highlights
[1] => 10:00 PM-11:00 PM
[2] =>
[3] => 1
[4] => Sportsnet 360
[5] => 100
[6] => 1459720800
)
[2] => Array (
[0] => The Wheel Highlights
[1] => 11:00 PM-12:30 AM
[2] =>
[3] => 1.5
[4] => Sportsnet 360
[5] => 100
[6] => 1459724400
)
)
)
您的代码可能由于多级数组而失败。要对每个第一级的项目进行排序,您必须在第一级执行foreach
,并通过引用对其进行处理,否则排序结果不会影响主数组:
# ↓ “&” means “by reference”
foreach( $array as &$sub )
{
usort ( $sub, function( $a, $b ) { return $a[6] - $b[6]; } );
}
eval.in demo