假设我有一个数组:
$arr = array(
'Animal Dog',
'Subject Physics',
'Place Tokyo',
'Sport Tennis'
);
我想要usort
具有以下标准:如果它包含tokyo
排名第一,如果包含tennis
排名第二,如果包含dog
排名第三。
Place Tokyo,
Sport Tennis,
Animal Dog,
Subject Physics
我知道我可以使用stristr
查看这些词是否存在于$a
and $b
,但我对写 3 个 if 条件一无所知......
function cmp($a,$b){
if ( stristr($a,'tokyo') )
// return what?
}
usort($arr, "cmp")
我将如何编写比较函数?
多么奇怪的问题啊..这符合你的要求吗?
usort($arr, 'cmp');
function cmp($a, $b) {
$av = (stripos($a, 'tokyo') !== false) * 4 | (stripos($a, 'tennis') !== false) * 2 | (stripos($a, 'dog') !== false);
$bv = (stripos($b, 'tokyo') !== false) * 4 | (stripos($b, 'tennis') !== false) * 2 | (stripos($b, 'dog') !== false);
return $av < $bv;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)