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" }
这个问题应该提供更多的背景。