Yso*_*oL8 3 php arrays sorting multidimensional-array
我已经尝试调整此代码以用于对命名键/字段上的多维数组进行排序.该字段是我需要从最小到最大排序的整数.
function myCmp($a, $b)
{
return strcmp($a["days"], $b["days"]);
}
uasort($myArray, "myCmp");
Run Code Online (Sandbox Code Playgroud)
这会按照我的需要对数组进行排序,但顺序错误.目前它从最小到最小,不使用自然顺序.我需要按自然顺序排序从最小到最大(例如2在5,12和24之前).
strnatcmp()是你的朋友
例如(使用php 5.3闭包/ 匿名函数):
<?php
$myArray = array( 'foo'=>array('days'=>2), 'bar'=>array('days'=>22), 'ham'=>array('days'=>5), 'egg'=>array('days'=>12) );
uasort($myArray, function($a, $b) { return strnatcmp($a["days"], $b["days"]); });
foreach($myArray as $k=>$v) {
echo $k, '=>', $v['days'], "\n";
}
Run Code Online (Sandbox Code Playgroud)
版画
foo=>2
ham=>5
egg=>12
bar=>22
Run Code Online (Sandbox Code Playgroud)