пример
тестовой файл содержит следующие данные:
номер1 дата1 имя1
номер2 дата2 имя2
номер3 дата3 имя3
номер4 дата4 имя4
номер5 дата5 имя5
надо определить есть ли имя1 в другой базе.
как делал.
// вытащил файл
$L1=file("prsring.txt");
$L2=file("ID_SEC_LIST.txt");
echo '<br><br>';
// хватаем строку из списка которая была в файле, т.е. пятую строчку
$String1=$L1[5];
// разбиваем строку на массив
$Array1 = explode ( " " , $String1);
// достаем из массива последний элемент
$r1=$Array1 [2];
// сравниваем элемент массива в первом файле с 10 (для примера) элементами в другом.
for ($j = 1; $j <= 10; $j++) {
// строку из списка которая была в файле
// разбиваем строку на массив
// достаем из массива последний элемент
$String2=$L2[$j];
$Array2 = explode ( " " , $String2);
$r2=$Array2 [2];
// сравниваем два элемента
$e=strcmp ($r1,$r2);
if($e!=0) $b=1;
}
if(b==1);
//echo $r1.' нет в ID_SEC_LIST.txt';
echo '<br><br>';
// }
возникла проблема при сравнении эелементов массива, если элемент из этого же файла, тогда проходит на ура, а если из другого то не проходит сравнения. Строчки одинаковые. Петров - Петров. А в результате 0 нету.
Подскажите, в чем проблема может быть.
Спустя 13 минут, 39 секунд (21.01.2011 - 12:05) Evilsoul написал(а):
Оформи код пожалуйста нормально, для этого есть тэги [php]
Цитата |
пример номер1 дата1 имя1 номер2 дата2 имя2 номер3 дата3 имя3 номер4 дата4 имя4 номер5 дата5 имя5 |
Это что?
Цитата |
есть несколько баз данных. |
каждая база данных имеет имя (одно), вторая (другое)
дальше в каждой базе есть таблицы, они тоже с именем
а уж потом идут столбцы с именами, типа
Цитата |
номер1 | дата1 | имя1 |
И последнее, коль ты говоришь о базе, то и работай с базой а не с файлами.
Спустя 4 часа, 33 минуты, 5 секунд (21.01.2011 - 16:38) guzmo написал(а):
Цитата (Evilsoul @ 21.01.2011 - 09:05) | ||||||
Оформи код пожалуйста нормально, для этого есть тэги [php]
Это что?
каждая база данных имеет имя (одно), вторая (другое) дальше в каждой базе есть таблицы, они тоже с именем а уж потом идут столбцы с именами, типа
И последнее, коль ты говоришь о базе, то и работай с базой а не с файлами. |
prsring.txt
ID_SEC_LIST.txt
две базы
Цитата | ||
Это что? |
это содержание базы prsring.txt
Цитата |
в каждой базе есть таблицы, они тоже с именем а уж потом идут столбцы с именами |
нет таблиц, база в виде файла .тхт.
Вроде все элементарно.
Файлики .тхт и представяют собой базу, которая обрабатывается на сервере, их требуется обработать по схеме выше. Чтобы не было дублей.
Спустя 55 минут, 24 секунды (21.01.2011 - 17:33) guzmo написал(а):
// сравниваем два элемента
$e=strcmp ($r1,$r2);
вот в этом проблема, переменные строчки с массивов с разных файлов.
Если сравниваю с одного файла, то отлично проходит.
$e=strcmp ($r1,$r2);
вот в этом проблема, переменные строчки с массивов с разных файлов.
Если сравниваю с одного файла, то отлично проходит.
Спустя 3 часа, 19 минут, 59 секунд (21.01.2011 - 20:53) guzmo написал(а):
даже файлы в переменные закидываю, и сравниваю все равно не может оценить одинаковые или нет, пишет для всех разные.
Спустя 5 часов, 42 минуты, 49 секунд (22.01.2011 - 02:36) Self написал(а):
В массивах нумерация с '0' ($L1, $L2, $Array1, $Array2).
Ну и при положительном сравнении нужно выпригивать из цикла.
Ну и при положительном сравнении нужно выпригивать из цикла.
Спустя 1 день, 4 часа, 13 минут, 2 секунды (23.01.2011 - 06:49) guzmo написал(а):
Цитата (Self @ 21.01.2011 - 23:36) |
В массивах нумерация с '0' ($L1, $L2, $Array1, $Array2). Ну и при положительном сравнении нужно выпригивать из цикла. |
знаю, чуть поправил, на самом деле там больше данных, на счет выпрыгивать тоже верно. Однако само сравнение не проходит.
через $e=strcmp ($r1,$r2);
Вытягиваю одного значения - "вася" $r1
вытягиваю значения из другого файла "вася" $r2
в результате сравнения выдает что разные.
однако если при $e=strcmp ($r1,$r2);
$r1 и $r2 из одного файла, при этом и то и другое "вася"
то выдает что равные.
ума не приложу почему из разных файлов одинаковые строчки разными получаются.