繁体   English   中英

根据自定义条件对该数组排序

[英]Sort this array based on custom criteria

array("name" => "",
      "uid" => "",
      "nid" => "",
      "vid" => "");

我需要这样排序:

array("nid" => "",
      "uid" => "",
      "vid" => "",
      "name" => "");

但是我似乎无法弄清楚array_map,uksort()...或其他任何东西。 谢谢

并不是这样的,但是如果您只看4个键,那为什么不呢?

$newArray = array("nid" => $array["nid"], "uid" => $array["uid"], "vid" => $array["vid"], "name" => $array["name"]);

您是否检查过uksort的功能参考

假设您要按数组的键升序对数组进行排序,但最后要使用'name'键,即使以后添加其他键,此方法也可以工作:

<?php

class MySortHelper
{
    function sort_my_array($a, $b)
    {
        if ( $a == $b ) return 0;

        if ( $a == 'name' ) return 1;
        if ( $b == 'name' ) return -1;

        return ($a > $b) ? 1 : -1;
    }
}

// ...

$my_sort_helper = new MySortHelper();
uksort($my_array, array($my_sort_helper, 'sort_my_array'));

您可以使用uksort()

function myksort($a, $b) {
    $korder = array('nid', 'uid', 'vid', 'name');
     return (array_search($a, $korder) < array_search($b, $korder)) : -1 ? 1;
}

uksort($array, 'myksort');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM