php按照数组长度排序,不改变位置算法,各位老师请帮忙
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->$arr = array('宫颈糜烂','治疗','治疗宫颈','宫颈','糜烂','如何治疗','如何','治宫颈','怎样','怎样治疗','宫糜');
function arrLenOrder_desc($a,$b)
{
if (strlen($a) == strlen($b)) return 0;
return (strlen(strip_tags($a)) < strlen(strip_tags($b))) ? 1 : -1;
}
usort($arr,"arrLenOrder_desc");
echo implode(",",$arr);
/*输出*/
//怎样治疗,宫颈糜烂,如何治疗,治疗宫颈,治宫颈,治疗,怎样,宫糜,如何,糜烂,宫颈
/*但我想要的结果是(即如果长度一样不改变原来顺序):*/
//宫颈糜烂,治疗宫颈,如何治疗,怎样治疗,治宫颈,治疗,宫颈,糜烂,如何,怎样,宫糜
$arr = array('宫颈糜烂','治疗','治疗宫颈','宫颈','糜烂','如何治疗','如何','治宫颈','怎样','怎样治疗','宫糜');
$a_k = array_keys($arr);
$a_v = array_map(create_function('$item', 'return strlen($item);'),$arr);
array_multisort($a_v,SORT_DESC,SORT_NUMERIC,$a_k,SORT_ASC,SORT_NUMERIC,$arr);
echo implode(",",$arr); <div class="clear"></div>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号