为什么要在php中使用str_split()?

时间:2017-03-21 09:17:17

标签: php arrays string split

给出以下代码:

$str = 'CLAX';
echo $str[2];  //prints 'A'
那么为什么我应该使用str_split( $str )将字符串转换为字符数组?

我理解str_split( $str , 2 )将返回字符串数组;每个字符串长度为2个字符。

http://php.net/manual/en/function.str-split.php

2 个答案:

答案 0 :(得分:1)

此函数用于将字符串拆分为具有给定string split length

的数组

默认情况下,string split length设置为1

如果要将字符串拆分为给定长度的给定值,则可以使用str_split。但是在你的情况下,你正在用default length 1分割字符串,这是因为你感到困惑。

<?php

$str = "CLAX";
echo $str[2]; //here you are referring to 2 index of string

$arr2 = str_split($str);
Array
(
    [0] => C
    [1] => L
    [2] => A
    [3] => X
)
echo $str[2]; //here you are referring to 2 index of an array

str_split reference

<?php

$str = "Hello Friend";
$arr2 = str_split($str, 3);
Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

答案 1 :(得分:0)

当您想利用数组函数对字符串中的组件执行任务时,使用str_split()非常方便。

str_split()的作用类似于explode(),除了它不关心字符是什么,只是它们在字符串中的位置 - 有特定的用例。

使用案例#1 Group Array Elements by Letter Range

而不是手动声明每个元素包含3个字母的数组,如下所示:

$chunks=['ABC','DEF','GHI','JKL','MNO','PQR','STU','VWX','YZ']

可以使用以下命令生成相同的数组:

$chunks=str_split(implode(range('A','Z')),3);

这纯粹是为了演示。当然,手动声明它会更有效。其他案例的潜在好处是代码灵活性和代码修改的简易性。

使用案例#2 Convert string to array at different character occurence

使用foreach循环处理每个字符时使用str_split()

$string="abbbaaaaaabbbb";
$array=str_split($string);
$last="";
foreach($array as $v){
    if(!$last || strpos($last,$v)!==false){
        $last.=$v;
    }else{
        $result[]=$last;
        $last=$v;
    }
}
$result[]=$last;
var_export($result);

如果你尝试用$string提供foreach循环,php会阻塞它。 str_split()是这项工作的正确工具。

使用案例#3 Find element of an array those contains only specific character set in PHP

使用str_split()与其他数组函数关联,以字符串函数不适合的方式检查值。

[我将避免传输整个代码块。]