Intereting Posts
Управление JOINs по неизвестному числу атрибутов EAV Микроэкономика стоит того времени? Создание разбивки на страницы в структуре yii Класс регистрации пользователя Окончательное решение для использования regex для удаления вложенных тэгов html того же типа? Шаги для отладки php Curl на окнах Игнорирование сообщения об ошибке сервера при использовании Yii CMemCache Обновить токен доступа пользователя к пользователю без вмешательства пользователя PHP & Javascript: Свойства описания файла изображения (вкладка «Сводка») Замена обратных косых черт косой чертой с помощью str_replace () в php как я могу опубликовать значение текстового поля, которое динамически создается jquery Почему корзина пуста после добавления продукта Laravel Request :: all () не следует называть статически Пытается передать ToDataURL более чем 524288 байт. Используя текст типа ввода Игнорировать дубликаты при использовании INSERT в базе данных с Symfony и Doctrine

Подсчет количества конкретных символов внутри строки

Извините, я только что нашел новую проблему из-за моего вопроса: Получить число Sepecific String Inside String .

Я пытался изо всех сил, как найти число специфических символов внутри строки? Дело в чем-то вроде этого.

function get_num_chars($char) { $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1' } 

Если я пройду get_num_chars(M) would return 2 Если я пройду get_num_chars(M-1) would return 1

Я пробовал count_chars() , substr_count() но он не работает.

Возможное решение с использованием регулярного выражения:

 function get_num_chars($char) { $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1'; return preg_match_all('/'.$char.'(?=,|$)/', $string, $m); } echo get_num_chars('M'); // 2 echo get_num_chars('M-1'); // 1 echo get_num_chars('M-2'); // 1 echo get_num_chars('K'); // 1 echo get_num_chars('K-1'); // 1 

Это возможно с помощью substr_count ()

Я думаю, что вы не пропустите значение в нем, правильно попробуйте это сделать

 $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1'; echo substr_count($string, 'K-1');//echo's 1 echo substr_count($string, 'K');// echo's 2 

Попробуй это

  $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1'; $wordCounts = array_count_values(str_word_count($string,1)); echo $mCount = (isset($wordCounts['M-'])) ? $wordCounts['M'] : 0; 

Но вот одна вещь. Вы можете просто передать «M-» или «M» не «M-1», это некое решение для того, что вы хотите. Beacuse str_word_count совпадает с точным количеством слов.

 $k_count = substr_count($string, 'K') - substr_count($string, 'K-'); $k1_count = substr_count($string, 'K-1'); 

или

Counting K not followed by dash следующим образом:

 $k_count = preg_match_all('/*K(?!-)/*', $string, $out); 

Попробуйте это, это может быть невыполнимо, но решает вашу проблему

 function get_num_chars($char) { $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1'; echo substr_count($string, $char); } get_num_chars('M,'); get_num_chars('M-1'); get_num_chars('k,'); 

Проверь это,

 $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1'; $arrString = explode($string,'M'); echo $stringCount = count($arrString);