PHP: разделите строку на массив foreach char
Я делаю метод, поэтому вашему паролю требуется хотя бы один заголовок и один символ или номер.
Я думал о том, чтобы разделить строку на то, чтобы потерять символы, а затем использовать preggmatch для подсчета, если она содержит один капитал и символ/номер.
однако я сделал что-то подобное в действии script, но не могу понять, как это вызывается в php. я не могу найти способ поместить каждый char слова в массив.
Пример AS3
for(var i:uint = 0; i < thisWordCode.length -1 ; i++)
{
thisWordCodeVerdeeld[i] = thisWordCode.charAt(i);
//trace (thisWordCodeVerdeeld[i]);
}
Спасибо,
Matthy
Ответы
Ответ 1
Вы можете обращаться к символам в строках так же, как к доступу к индексу массива, например
$length = strlen($string);
$thisWordCodeVerdeeld = array();
for ($i=0; $i<$length; $i++) {
$thisWordCodeVerdeeld[$i] = $string[$i];
}
Вы также можете сделать:
$thisWordCodeVerdeeld = str_split($string);
Однако вы можете обнаружить, что проще проверить строку как целую строку, например. используя регулярные выражения.
Ответ 2
вы можете преобразовать строку в массив с помощью str_split и использовать foreach
$chars = str_split($str);
foreach($chars as $char){
// your code
}
Ответ 3
Вы можете получить доступ к строке с помощью []
, как и для массивов:
$stringLength = strlen($str);
for ($i = 0; $i < $stringLength; $i++)
$char = $str[$i];
Ответ 4
Так как функция str_split()
не является многобайтовой безопасностью, простым решением для разделения кодированной строки UTF-8 является использование preg_split()
с u (PCRE_UTF8)
.
preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )
Ответ 5
Менее читаемое, но более эффективное решение при повторении нескольких строк может использовать isset
для проверки конца строки. Это может быть лучше, потому что isset
- это языковая конструкция, а strlen
- это функция:
for ($i = 0; isset($value[$i]); $i++) {
"do something here"
}
Этот вопрос должен предоставить больше информации.