Поиск части слова
Здравствуйте!
Помогите, пожалуйста, с такой задачей: Для поиска повторяющегося набора цифр (кода), использую такой код: $file=file("test.txt"); $str=$file[0]; $array=explode(",",$str); $value=1; if(($key = array_search($value,$array)) !== FALSE){ unset($array[$key]); } $first_array = array_count_values($array); $second_array = array_diff($first_array, [$value]); var_dump($second_array); который выводит, число вхождений (повторений) кода. Задача в том, что $file=file("test.txt"); ищет строгое соответствие, а надо, скажем, при совпадении, например, первых 5 цифр (как по маске), чтобы считался повтор. Как это можно реализовать? |
Цитата:
Что нужно сделать не понял. |
Цитата:
$array = explode(",", $file[0]); Цитата:
|
По как по "маске" - имела ввиду соответствие, но не строгое, поэтому "как". Да можно без "$str", сделать сразу, осталось, т.к. код несколько раз трансформировался. Безусловно, функция «file» ничего не ищет. А сделать нужно, чтобы код выполнял ту же работу, что и сейчас, с той лишь разницей, что сейчас поиск вхождений ищет идентичность строк кода 1234567, а надо, чтобы принимался код, например, и 1234576, или 1234598 и т.д.
|
Т.е., например, 5 цифр кода при повторе кода, принимались в строгом соответствии, а последующие не имели принципиального значения.
|
Sonya, нужно что-то типа этого?
<?php $haystack=array('123456','123789','124987','321654'); $needle='123'; $result=array(); $charset='UTF-8'; $needle_length=mb_strlen($needle,$charset); foreach($haystack as $string){ if(mb_substr($string,0,$needle_length,$charset)==$needle) $result[]=$string; } var_dump($result); exit; |
Дело в том, что я не знаю цифры кодов в массиве, они будут выводиться, только в случае повтора.
|
Nexus,
цифры, латиница, управляющие символы в монгобайтной кодировке все равно занимают один байт, $charset='UTF-8' и mb_strlen для них совсем не требуется. |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 08:40. |