[英]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.