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的主要内容,如果未能解决你的问题,请参考以下文章