【问题标题】:Why should one use str_split() in php?为什么要在 php 中使用 str_split()?
【发布时间】:2017-03-21 09:17:16
【问题描述】:

给定以下代码:

$str = 'CLAX';
echo $str[2];  //prints 'A'

那我为什么要使用str_split( $str ) 将字符串转换为字符数组呢?

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

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

【问题讨论】:

  • 在你的例子中没有必要使用str_split()
  • 您将使用 str_split 将字符串实际拆分为不同的部分(而不仅仅是访问一个字符) - 例如用“空格”字符分割字符串以获得单词数组
  • 您要归档什么以及为什么要归档?你试过什么?我们不在您的脑海中,因此请尝试为我们提供更多背景信息以了解您的真正要求。
  • 如果您需要对字符串的单个字符进行 foreach(),它很有用
  • @DCrystal 我认为您正在考虑爆炸。 str_split 函数只能拆分成指定大小的块。

标签: php arrays string split


【解决方案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
)

【讨论】:

  • 这并不是我想问的。
  • 等待我在我的帖子中回答你的问题。举个例子
【解决方案2】:

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

str_split()explode() 一样工作,只是它不关心字符是什么,只关心它们在字符串中的位置——这有特定的用例。

用例 #1Group Array Elements by Letter Range

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

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

同样的数组可以产生:

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

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


用例 #2Convert 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() 是完成这项工作的合适工具。


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

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

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

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多