PHP:将字符串拆分为数组 foreach char

Posted

技术标签:

【中文标题】PHP:将字符串拆分为数组 foreach char【英文标题】:PHP: Split a string in to an array foreach char 【发布时间】:2010-11-20 14:32:33 【问题描述】:

我正在制定一种方法,因此您的密码至少需要一个大写字母和一个符号或数字。 我正在考虑将字符串拆分为丢失字符,然后使用 preggmatch 来计算它是否包含一个大写字母和符号/数字。

但是我在动作脚本中做了类似的事情,但无法弄清楚这是如何在 php 中调用的。我找不到将单词的每个字符放入数组中的方法。

AS3 示例

    for(var i:uint = 0; i < thisWordCode.length -1 ; i++)

    thisWordCodeVerdeeld[i] = thisWordCode.charAt(i);
    //trace (thisWordCodeVerdeeld[i]);

谢谢, 马蒂

【问题讨论】:

php.net/manual/en/function.str-split.php 【参考方案1】:

您可以像访问数组索引一样访问字符串中的字符,例如

$length = strlen($string);
$thisWordCodeVerdeeld = array();
for ($i=0; $i<$length; $i++) 
    $thisWordCodeVerdeeld[$i] = $string[$i];

你也可以这样做:

$thisWordCodeVerdeeld = str_split($string);

但是您可能会发现将字符串作为一个完整的字符串进行验证更容易,例如使用正则表达式。

【讨论】:

方括号符号的文档:php.net/manual/en/… 使用 isset 代替 strlen:for ($i=0; isset($string[$i]); $i++) $thisWordCodeVerdeeld = str_split($string);这是分隔字符串字符并将每个字符放入数组中的完美答案。【参考方案2】:

您可以使用str_split 将字符串转换为数组并使用foreach

$chars = str_split($str);
foreach($chars as $char)
    // your code

【讨论】:

恕我直言,这是最好的方法。它可能不是最快的,但对于大多数应用程序来说,这根本不重要。在我们的应用程序中,甚至无法测量速度差异。 (与 for 循环相比。) 也同意这是更好的答案,因为它更直接地回答了问题 注意如果$str是空字符串str_split会返回[""] 这仍然是最好的答案。只是现在最好使用mb_str_split 来正确处理多字节字符串。【参考方案3】:

您可以像访问数组一样使用[] 访问字符串:

$stringLength = strlen($str);
for ($i = 0; $i < $stringLength; $i++)
    $char = $str[$i];

【讨论】:

这不适用于多字节字符串,例如:'éléphant'。 ***.com/questions/3666306/…【参考方案4】:

由于str_split() 函数不是多字节安全的,拆分UTF-8 编码字符串的简单解决方案是使用preg_split()u (PCRE_UTF8) 修饰符。

preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )

【讨论】:

这是一个重要的细微差别 - 我很高兴我向下滚动阅读此答案

以上是关于PHP:将字符串拆分为数组 foreach char的主要内容,如果未能解决你的问题,请参考以下文章

将数组拆分为字符串

如何在PHP中按字符将数组拆分为关联数组[重复]

PHP:将字符串拆分为数组,例如没有分隔符的爆炸

java如何把一个字符串拆分后用foreach分行打出并用stringbuilder重组?

PHP运用foreach神奇的转换数组(实例讲解)

PHP怎么将字符串拆分成数组