我正在寻找一个按键排序多维数组的解决方案,重点是我可以对一组具有多维的数组进行排序,该数组没有自定义键ID且数组在set中,但此数组包含自定义键,我需要按日期排序:
我的数组是:
$newDataSet = array(
'2017-02-03' => array(
array(
array(
'name' => 'Paul',
'state' => 'in',
'date' => '2017-02-03'
),
array(
'name' => 'Paul',
'state' => 'out',
'date' => '2017-02-03'
)
)
),
'2017-01-02' => array(
array(
array(
'name' => 'John',
'state' => 'in',
'date' => '2017-01-02'
),
array(
'name' => 'John',
'state' => 'out',
'date' => '2017-01-02'
)
)
),
'2017-04-01' => array(
array(
array(
'name' => 'Smith',
'state' => 'in',
'date' => '2017-04-01'
),
array(
'name' => 'Smith',
'state' => 'out',
'date' => '2017-04-01'
)
)
)
);
uasort($newDataSet, function($a, $b) { return($a['date'] - $b['date']); });
据我所知,usort只会对多维数组进行排序,所以在我的情况下是错误的,因为我没有使用它的结构,有没有办法按键asc排序?我的意思是date
asc?
感谢您提供更好理解的任何提示/文档。
预期结果:
$newDataSet = array(
'2017-01-02' => array(
array(
array(
'name' => 'Paul',
'state' => 'in',
'date' => '2017-01-02'
),
array(
'name' => 'Paul',
'state' => 'out',
'date' => '2017-01-02'
)
)
),
'2017-02-03' => array(
array(
array(
'name' => 'John',
'state' => 'in',
'date' => '2017-02-03'
),
array(
'name' => 'John',
'state' => 'out',
'date' => '2017-02-03'
)
)
),
'2017-04-01' => array(
array(
array(
'name' => 'Smith',
'state' => 'in',
'date' => '2017-04-01'
),
array(
'name' => 'Smith',
'state' => 'out',
'date' => '2017-04-01'
)
)
)
);