iou3344 2021-09-28 11:47 采纳率: 85.2%
浏览 107
已结题

关于PHP比较字符串长度的简洁方法请教

$len1='大江东去,浪淘尽,';
$len2='大江东去,浪淘尽,千古风流人物。故垒西边,';
$len3='大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。人生如梦,一尊还酹江月。';
$len7='';
$len4='大江东去,浪淘尽,千古风流人物。';
$len5='大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。';
$len6='大江东去,浪淘尽,千古风流人物。故垒西边,人道是,';
$len8='';

如何一次性比较出以上8个字符串的长度(或者循环比较出),并分别输出以下3组字符串呢?
1、最短的字符串(不含空字符串)
2、第二短的字符串
3、最长的字符串

以下是我写的找出最短字符串的代码(按三个字符串),但是感觉好复杂啊~结果好像也有问题~

$str=$len1<$len2?($len1<$len3?$len1:$len3):($len2<$len3?$len2:$len3);
echo "最短字符串内容如下:" $str;

目前的难点是如果有几组空字符串混杂其中时,如何找出最短的那个非空字符串呢?那么第二短的也就好找了,相对的,最长的好像已经解决了。

  • 写回答

1条回答 默认 最新

  • 本堃不方 2021-09-28 14:35
    关注
    
    $arr1=array(strlen($len1)=>$len1,strlen($len2)=>$len2,strlen($len3)=>$len3); //用循环像这样添加,添加之前判断是否为空
    arsort($arr1); //按照键的大小排序
    // print_r($arr1);//按照键的大小输出关联数组
    $arr2=array_values($arr1);//关联数组转普通数组,
    echo $arr2[0]."<br>"; //字符最长的下标是0,第二是1,最小的是数组长度-1
    echo $arr2[1]."<br>" ;
    echo $arr2[count($arr2)-1]."<br>" ;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月28日
  • 修改了问题 9月28日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助