Подтвердить что ты не робот

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

4b9b3361

Ответ 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"
}

Этот вопрос должен предоставить больше информации.