具体用法如下:
<?php
$arr = array(
'man' => array(
'salary' => 3000,
'name' => '张三',
'gender' => '男'
),
'woman' => array(
'salary' => 5000,
'name' => '王二丫',
'gender' => '女'
)
);
uasort($arr, "compare");
function compare($a, $b)
{
// 如果工资一样则不作比较
if ($a['salary'] == $b['salary'])
return 0;
// 工资高的排在前面
return ($a['salary'] > $b['salary']) ? 1 : -1;
}
很明显,上述代码根据用户的需求,把数组按照工资的大小进行了排列,最后的结果是工资高的王二丫排在了工资低的张三前面。
基本用法很简单,需要注意的是在类(Class)
中使用这个方法的时候,需要在方法中传入$this
指定当前对象。看代码:
<?php
class Abc {
function index()
{
$arr = array(
'man' => array(
'salary' => 3000,
'name' => '张三',
'gender' => '男'
),
'woman' => array(
'salary' => 5000,
'name' => '王二丫',
'gender' => '女'
)
);
uasort($arr, array($this, "compare"));
}
function compare($a, $b)
{
// 如果工资一样则不作比较
if ($a['salary'] == $b['salary'])
return 0;
// 工资高的排在前面
return ($a['salary'] > $b['salary']) ? 1 : -1;
}
}
很明显,在类中调用
uasort
方法的时候,是与在文件中直接调用是不一样的,这或许就是面向对象和面向过程的一个差异吧。