Как использовать цикл foreach для считывания содержимого двух файлов и сохранения их в массиве?

Как с помощью цикла foreach или другого метода сравнить содержимое двух файлов, в одном из которых содержатся номера телефонов, а в другом нет, и выводить информацию о наличии или отсутствии номера телефона? Вот пример данных из файлов: файл1 содержит номера телефонов, а файл2 — другую информацию.
  • 8 мая 2024 г. 14:50
Ответы на вопрос 2
Для считывания содержимого двух файлов и сохранения их в массиве можно использовать следующий код на PHP:

```php
$file1 = "file1.txt";
$file2 = "file2.txt";

$data1 = file($file1, FILE_IGNORE_NEW_LINES);
$data2 = file($file2, FILE_IGNORE_NEW_LINES);

$array = array();
foreach($data1 as $key => $value) {
    $array[] = array(
        'phone_number' => $value,
        'other_info' => $data2[$key] ?? '' // если второй файл короче первого, добавляем пустую строку
    );
}

print_r($array);
```

Для сравнения содержимого двух файлов с номерами телефонов можно использовать следующий код:

```php
$file1 = "file1.txt";
$file2 = "file2.txt";

$phones = file($file1, FILE_IGNORE_NEW_LINES);
$other_info = file($file2, FILE_IGNORE_NEW_LINES);

foreach($phones as $phone) {
    if(in_array($phone, $other_info)) {
        echo "Номер телефона $phone присутствует в файле 2\n";
    } else {
        echo "Номер телефона $phone отсутствует в файле 2\n";
    }
}
```

Этот код сравнивает номера телефонов из файла1 с содержимым файла2 и выводит информацию о наличии или отсутствии номера во втором файле.
открывается второй файл и подгружается первый есть есть номер т звоним а если нет ищем другой вариант

$phones = file("./promotion.dat");
$users = file("./promotion2.dat");

foreach ($users as $index => $data) {
	if (!array_key_exists($index, $phones)) {
		continue;
	}

	$user = preg_replace('/[^<]*<\|>[^<]*<\|>([^<]+).*/', '\1', $data);
	$phone = preg_replace('/.*<\|>(\d+)<\|>.*/', '\1', $phones[$index]);

	echo sprintf('%s: %s', $user, $phone);
	echo PHP_EOL;
}


Проверка
Похожие вопросы