Я делаю код, основанный на двух .txt, один с именами, а другой с днями рождения. Я читаю их, и когда дата дня совпадает с date.txt, имя в совпадающей строке names.txt будет показано, но когда я сделаю сравнение, появится только последняя строка names.txt.
Вот код:
<?php
$nome = fopen("nome.txt", "r");
while(!feof($nome)){
$pessoa = fgets($nome);
} fclose($nome);
$current = date("d-m");
$content = fopen("data.txt", "r");
while (!feof($content)){
$linha = fgets($content);
if (strtotime($linha) == strtotime($current)) {
echo $pessoa;
echo '<br>';
}
} fclose($content);
?>
Содержание .txt:
nome.txt:
удостоверительная часть судебного приказа
teste1
teste2
teste3
data.txt:
12-12
18-12
12-12
12-12
Вы можете обрабатывать построчно из обоих файлов одновременно
<?php
$nome = fopen("nome.txt", "r");
$content = fopen("data.txt", "r");
$current = date("d-m");
while(!feof($nome) && !feof($content)){
$pessoa = fgets($nome);
$linha = fgets($content);
if (trim($current) == trim($linha)) {
echo $pessoa;
echo '<br>';
}
}
fclose($content);
fclose($nome);
?>
Или вы можете прочитать весь файл в массив, используя функция файла но это может быть медленнее
<?php
$nome = file("nome.txt");
$content = file("data.txt");
$current = date("d-m");
foreach($content as $key => $linha)
if (trim($current) == trim($linha)) {
echo $nome[$key];
echo '<br>';
}
?>
Вы можете открывать файлы и загружать их в массивы и использовать foreach с ключом $ для их синхронизации.
$names = explode(PHP_EOL,file_get_contents("none.txt"));
$dates = explode(PHP_EOL,file_get_contents("data.txt"));
Foreach($names as $key => $name){
Echo $name . " " . $dates[$key] . "\n";
}
Другой способ — объединить два массива в один.
Это, однако, имеет недостаток, вы не можете иметь двух человек с одинаковыми именами.
$days = array_combine($names, $dates);
// Days is now an associate array with name as key and date as birthday.
Foreach($days as $name => $date){
Echo $name . " " . $date . "\n";
}