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

时间:2009-08-18 13:43:25

标签: php arrays split passwords validation

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

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

AS3示例

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

谢谢, Matthy

5 个答案:

答案 0 :(得分:64)

您可以使用与访问数组索引相同的方式访问字符串中的字符,例如

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

你也可以这样做:

$thisWordCodeVerdeeld = str_split($string);

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

答案 1 :(得分:54)

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

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

答案 2 :(得分:15)

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

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

答案 3 :(得分:6)

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

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

答案 4 :(得分:1)

在迭代许多字符串时,可读性较差但性能较好的解决方案可能正在使用isset来检查字符串的结尾。这可能会有更好的效果,因为isset是一种语言结构,strlen是一个函数:

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

This question应该提供更多背景资料。