gpt4 book ai didi

基于字符串出现的 PHP 自定义排序函数?

转载 作者:可可西里 更新时间:2023-11-01 00:45:32 24 4
gpt4 key购买 nike

假设我有一个数组:

$arr = array(
'Animal Dog',
'Subject Physics',
'Place Tokyo',
'Sport Tennis'
);

我想用以下标准usort:如果它包含tokyo,则排在第一位,如果它包含tennis,则排在第二位,如果它包含包含 dog 排名第三。

Place Tokyo,
Sport Tennis,
Animal Dog,
Subject Physics

我知道我可以使用 stristr 来查看单词是否存在于 $a$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;
}

关于基于字符串出现的 PHP 自定义排序函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com