首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得字符串数组的两个连续值的值?

如何获得字符串数组的两个连续值的值?
EN

Stack Overflow用户
提问于 2014-11-01 20:15:34
回答 2查看 67关注 0票数 2

我想根据字长对具有字符串值( word )的数组元素进行排序。我正在执行插入排序:

代码语言:javascript
复制
$str="welcome to php";
 $st=explode(" ",$str);
   $a=count($st);
    for($i=0;$i<$a;$i++)
     {
       for($j=0;$j<$a;$j++)
        {
          if(strlen($st[$j])<strlen($st[$j+1]))
               {$t=$st[$j];
                 $st[$j]=$st[$j+1];
                 $st[$j+1]=$t;}
   }}

所以问题是$st[$j+1]。它不会得到数组的下一个值。它给出未定义的偏移量。如何获得数组的下一个值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-01 20:22:12

您可以使用php的usort函数定义自己的比较函数。

请参阅http://php.net/manual/en/function.usort.php

因此,您所要做的就是编写您自己的函数,根据字符串的长度来比较它们,然后调用usort并传递您的函数。

票数 0
EN

Stack Overflow用户

发布于 2014-11-01 20:23:50

像这样的事情对你来说是可行的:

代码语言:javascript
复制
<?php

    function lengthSort($a, $b){
        return strlen($b) - strlen($a);
    }

    $str = "welcome to php";
    $st = explode(" ", $str);

    usort($st,'lengthSort');
    var_dump($st);

?>

输出:

代码语言:javascript
复制
array(3) {
  [0]=>
  string(7) "welcome"
  [1]=>
  string(3) "php"
  [2]=>
  string(2) "to"
}

同样,正如Nick J所建议的,请看一下foreach循环!它非常强大!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26692790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档