给出以下代码:
$str = 'CLAX';
echo $str[2]; //prints 'A'
那么为什么我应该使用str_split( $str )
将字符串转换为字符数组?
我理解str_split( $str , 2 )
将返回字符串数组;每个字符串长度为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
<?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()
与其他数组函数关联,以字符串函数不适合的方式检查值。
[我将避免传输整个代码块。]