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

mat*_*thy 46 php arrays passwords validation split

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

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

AS3的例子

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

谢谢,Matthy

Tom*_*igh 69

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

$length = strlen($string);
$thisWordCodeVerdeeld = array();
for ($i=0; $i<$length; $i++) {
    $thisWordCodeVerdeeld[$i] = $string[$i];
}
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

$thisWordCodeVerdeeld = str_split($string);
Run Code Online (Sandbox Code Playgroud)

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


小智 59

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

$chars = str_split($str);
foreach($chars as $char){
    // your code
}
Run Code Online (Sandbox Code Playgroud)

  • 恕我直言,这是最好的方式.它可能不是最快的,但对于大多数应用来说,它根本不重要.在我们的应用程序中,甚至无法测量速度差异.(Vs for-loop.) (2认同)

Gre*_*reg 15

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

$stringLength = strlen($str);
for ($i = 0; $i < $stringLength; $i++)
    $char = $str[$i];
Run Code Online (Sandbox Code Playgroud)

  • 对于像'éléphant'这样的多字节字符串,这不能正常工作。http://stackoverflow.com/questions/3666306/how-to-iterate-utf-8-string-in-php (2认同)

Dan*_*jel 9

由于str_split()函数不是多字节安全,一个简单的解决分裂UTF-8编码的字符串是使用preg_split()u (PCRE_UTF8)改性剂.

preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )
Run Code Online (Sandbox Code Playgroud)