Поиск части слова
Здравствуйте!
Помогите, пожалуйста, с такой задачей: Для поиска повторяющегося набора цифр (кода), использую такой код:
$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, время: 17:22. |