对数组中的每个字符串对多维数组进行排序



我得到了一个多维数组,它是这样构建的:

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?

array_multisort涵盖了这一点,下面是他们的文档中针对您的问题调整的示例:

foreach($data as $key => $row) {
    $schul_id[$key] = $row['schul_id'];
}
array_multisort($schul_id, SORT_DESC, $data);
print_r($data);

第一条评论是对的!我用了这个

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;
}

您要查找的是:

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');

相关内容

  • 没有找到相关文章

最新更新