根据PHP中的值对数组进行排序

根据PHP中的值对数组进行排序,php,arrays,sorting,Php,Arrays,Sorting,我有以下数组 [0] => Array ( [id] => 229 [val] => 2 ) [3] => Array ( [id] => 237 [val] => 1 ) [4] => Array ( [id] => 238 [val] => 6 ) 我需要根据数组中的val值对该数组进行排序

我有以下数组

[0] => Array
    (
        [id] => 229
        [val] => 2
    )

[3] => Array
    (
        [id] => 237
        [val] => 1
    )

[4] => Array
    (
        [id] => 238
        [val] => 6
    )
我需要根据数组中的val值对该数组进行排序,但不知道如何完成此操作?

这将有助于-

函数cmp($a,$b)
{
如果($a[“val”]==b[“val”]){
返回0;
}
回报($a[“val”]<$b[“val”])?-1:1;
}
usort($yourarray,“cmp”);

阅读了解更多信息。

您可以使用
array\u multisort()

示例如下:

示例#3排序数据库结果就是您想要的。如果您不熟悉回调函数,并且
usort()
==========================================================================
现在在ur数组中使用此函数

sksort($arrayname, "val"); /* for ascending */

sksort($arrayname, "val", true); /* for descending */
我会做:uasort($yourray,'cmp');维护键值对(索引关联)。可能重复
function sksort(&$array, $subkey="id",$sort_ascending=false)
{
    if (count($array))
        $temp_array[key($array)] = array_shift($array);

    foreach($array as $key => $val){
        $offset = 0;
        $found = false;
        foreach($temp_array as $tmp_key => $tmp_val)
        {
            if(!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey]))
            {
                $temp_array = array_merge(
                    (array)array_slice($temp_array,0,$offset),
                    array($key => $val),
                    array_slice($temp_array,$offset)
                );
                $found = true;
            }
            $offset++;
        }
        if(!$found) $temp_array = array_merge($temp_array, array($key => $val));
    }

    if ($sort_ascending) $array = array_reverse($temp_array);

    else $array = $temp_array;
}
sksort($arrayname, "val"); /* for ascending */

sksort($arrayname, "val", true); /* for descending */