我有一个像这样构建的多维数组:
array(
array(
'zahlungen_id' => 1,
'reise_id' => 1,
'name' => 'Liam Schnell',
'schul_id' => 1,
'summe' => 49,
'art' => 'PayPal',
'sicher' => 0,
'datum' => '2014-05-05'
),
array(
'zahlungen_id' => 2,
'reise_id' => 3,
'name' => 'Max Göllner',
'schul_id' => 1,
'summe' => 49,
'art' => 'SOFORT',
'sicher' => 1,
'datum' => '2014-05-06'
),
array(
'zahlungen_id' => 3,
'reise_id' => 2,
'name' => 'Sasha Novalja',
'schul_id' => 2,
'summe' => 49,
'art' => 'Kreditkarte',
'sicher' => 1,
'datum' => '2014-05-05'
),
array(
'zahlungen_id' => 4,
'reise_id' => 1,
'name' => 'Hans Wurst',
'schul_id' => 1,
'summe' => 49,
'art' => 'Sofort',
'sicher' => 0,
'datum' => '2014-05-04'
)
);
我有什么方法可以使用' schul_id'对数组本身进行排序?就像一个下降的schul_id?
答案 0 :(得分:1)
第一条评论是正确的!我用过这个
function aasort(&$array, $key) {
$sorter = array();
$ret = array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii] = $va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii] = $array[$ii];
}
$array = $ret;
}
答案 1 :(得分:1)
您正在寻找uasort:
function cmp($a, $b) {
if ($a["schul_id"] == $b["schul_id"]) {
return 0;
}
return ($a["schul_id"] > $b["schul_id"]) ? -1 : 1;
}
uasort($array, 'cmp');
答案 2 :(得分:1)
array_multisort
涵盖了这一点,这里是他们的文档调整到您的问题的示例:
foreach($data as $key => $row) {
$schul_id[$key] = $row['schul_id'];
}
array_multisort($schul_id, SORT_DESC, $data);
print_r($data);