【问题标题】:split at the first space in a string在字符串的第一个空格处拆分
【发布时间】:2013-04-19 08:07:12
【问题描述】:

我有一个这样的字符串:

红黄蓝

我想得到一个这样的数组:

数组 ( [0] => 红色 [1] => 黄蓝)

如何在字符串的第一个空格处分割? 我的代码不起作用

<?php
$str = "red yellow blue";
$preg = preg_split("/^\s+/", $str);
print_r($preg);
?>

请帮帮我。

【问题讨论】:

    标签: php split


    【解决方案1】:

    使用explode 有一个限制:

    $array = explode(' ', $string, 2);
    

    附注:preg_split 的第三个参数与explode 的参数相同,因此您也可以这样编写代码:

    $array = preg_split('#\s+#', $string, 2);
    

    参考文献:

    PHP: explode

    PHP: preg_split

    【讨论】:

    • 为了好奇,第三个参数是数组中元素的最大个数,最后一个元素会取走所有剩下的。
    【解决方案2】:

    你可以像这样使用explode函数

    print_r(explode(' ', $str, 2));
    

    它会设置一个限制。查看更多相关信息here

    【讨论】:

      【解决方案3】:
      <?php
      $string = "red yellow blue";
      $result = explode(" ", $string, 2);
      print_r($result);
      ?>
      

      把它炸掉

      【讨论】:

        【解决方案4】:

        您可以使用 explode,但如果您不能 100% 确定每次都具有相同的空格数(爆炸),您可以使用 ltrim 删除第一个单词和空格

        <?php
        $full='John Doe Jr.';
        $full1=explode(' ', $full);
        $first=$full1[0];
        $rest=ltrim($full, $first.' ');
        echo "$first + $rest";
        ?>
        

        【讨论】:

          【解决方案5】:

          你可以这样使用explode

            $stringText  = "red yellow blue";
            $colours = explode(" ", $stringText);
            echo $colours[0]; //red 
            echo $colours[1]; //yellow
            echo $colours[2]; //blue
          

          也可以通过foreach循环获取$colours的所有元素,不过这种情况下explode更好

          【讨论】:

          • 这将在 每个 空间分割字符串 - 问题只要求在 first 空间分割。
          【解决方案6】:

          函数 splitName($name) { $parts = explode(' ', $name); 返回数组( '名字' => array_shift($parts), '姓氏' => 加入(' ', $parts) ); }

          【讨论】:

            猜你喜欢
            • 2012-01-08
            • 2012-05-10
            • 1970-01-01
            • 2017-09-03
            • 1970-01-01
            • 2013-01-01
            • 2012-05-03
            相关资源
            最近更新 更多