PHP:将一个string分割成一个数组foreach char

我正在做一个方法,所以你的密码至less需要一个资历和一个符号或数字。 我正在考虑分割string来丢失字符,然后使用preggmatch来计算它是否包含一个大写字母和符号/数字。

然而,我做了这样的行动脚本,但无法弄清楚如何在PHP中调用。 我不能find一种方法来把每个字的字符数组。

AS3的例子

for(var i:uint = 0; i < thisWordCode.length -1 ; i++) { thisWordCodeVerdeeld[i] = thisWordCode.charAt(i); //trace (thisWordCodeVerdeeld[i]); } 

谢谢,Matthy

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

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

你也可以这样做:

 $thisWordCodeVerdeeld = str_split($string); 

但是,您可能会发现将stringvalidation为整个string更容易,例如使用正则expression式。

你可以使用str_split将string转换为数组,并使用foreach

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

你可以像使用数组一样使用[]来访问一个string:

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

由于str_split()函数不是多字节安全的,因此分割UTF-8编码string的简单方法是使用preg_split()u (PCRE_UTF8)修饰符。

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

在迭代多个string时,可读性较差但性能较好的解决scheme可能使用isset来检查string的结尾。 这可能会更好,因为isset是一个语言结构, strlen是一个函数:

 for ($i = 0; isset($value[$i]); $i++) { "do something here" } 

这个问题应该提供更多的背景。