在数组和字符串值之间排序数组

时间:2011-07-18 01:04:16

标签: php sorting

我正在创建一个模板解析器,我需要对传递给解析器的变量数组进行排序,以便首先处理作为数组的每个数组元素。例如:

$data = array(
    'name' => 'Steven',
    'type' => array(
        'gender' => 'M',
        'age' => 23'
    )
)

我需要'type'成为第一个,因为它是一个数组,'name'是最后一个。有没有人知道如何做到这一点?我看过不同排序函数的php.net手册,但是看不出有什么适用于我的情况。

2 个答案:

答案 0 :(得分:3)

function cmp($a, $b) {
    return is_array($a) ? -1 : 1;
}    
uasort($data, "cmp");

这将按字母顺序基于值类型对数组进行排序。数组出现在String之前。

答案 1 :(得分:2)

function cmp($a, $b) {
   return is_array($a)? -1 : 0;
}

uasort($data, "cmp");