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日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!