Я новичок здесь, и у меня есть массив php некоторых строк, таких как {"VAL1", "VAL2", "VAL3", "VAL4"}, и у меня есть строка большего размера (обычно текстовый файл). Текстовый файл содержит элементы массивов в разных позициях, и некоторые или все могут повторять более одного. За каждым из элементов массива, содержащихся в текстовом файле, сразу же следует время появления, например, "VAL1 0900UTC и другая текстовая информация" . Теперь проблема в том, что я хочу найдите вхождение (я) всех элементов массива в текстовом файле и значение времени после элемента.
Обратите внимание, что некоторые элементы могут встречаться более одного раза в разных позициях с разным значением времени в текстовом файле.
Я уже могу загрузить текстовый файл и получить все элементы.
$mytextfile = preg_replace('/\s+/', ' ', strtoupper(file_get_contents($textpath."/". $textfile)));
$substr = array("REALTK","BGPTK", "SUDTK", "BECTK");
$bigstring = "REALTK 1000UTC 16/14 1011 BGPTK 1030UTC 10/12 992 REALTK 1145UTC 00/14 2222 SUDTK 1412UTC 11/06 1011 REALTK 1600UTC 16/14 1015 ...";
//I created variables to hold all element occuring to false
$is_val1 = false; $is_val2 = false;$is_val3 = false; $is_val4 = false;
//I created variables to count how many of each substring exist in the string
$numofval1=$numofval2=$numofval3=$numofval4=0;
if(strpos($bigstring, $substr[0]) !== false) {
$is_val1 = true;
//if exist, count how many times
$numofval1 = substr_count(strtoupper($bigstring),$substr[0]);
} e.t.c
Мне удалось получить вхождение каждого из элементов массива в большую строку
Я был в состоянии обнаружить, если какой-либо из элементов массива встречается более одного раза в большой строке и сколько раз это происходит.
Но я не смог получить их в той последовательности, в которой они находятся, с их положением в строке текстового файла и значением времени после каждого элемента.
$mytextfile = preg_replace('/\s+/', ' ', strtoupper(file_get_contents($textpath."/". $textfile)));
$substr = array("REALTK","BGPTK", "SUDTK", "BECTK");
// это пример содержимого текстового файла
$ bigstring = "REALTK 1000UTC 16/14 1011 BGPTK 1030UTC 10/12 992 REALTK 1145UTC 00/14 2222 SUDTK 1412UTC 11/06 1011 REALTK 1600UTC 16/14 1015 ...";
//I created variables to hold all element occuring to false
$is_realtk = false; $is_bgptk = false;$is_sudtk = false; $is_bectk = false;
//I created variables to count how many of each of the element exist in the text file string
$numofrealtk=$numofbgptk=$numofsudtk=$numofbectk=0;
if(strpos($bigstring, $substr[0]) !== false) {
$is_realtk = true;
//if exist, count how many times
$numofrealtk = substr_count(strtoupper($bigstring),$substr[0]);
} e.t.c
Что мне нужно, так это получить элементы массива в порядке их появления в текстовом файле с указанием их позиции и времени
REALTK POSITION1 1000UTC
BGPTK POSITION5 1030UTC
REALTK POSITION8 1145UTC
SUDTK POSITION13 1412UTC
REALTK POSITION17 1600UTC
Я также хочу сохранить элемент => timevalue в качестве ассоциативного массива.
Спасибо в ожидании.