Помогите реализовать следующее: В файле "num.txt" содержатся строки: 78578 34537 37856 96567 74659 В другом файле "usnum.txt" к примеру: 56498:0 37856:0 85786:0 74659:0 56489:0 и т.д Нужно, чтобы в совпавших строчках во втором файле после двоеточия увеличивалось число, на 10 например.
Код (PHP): <?php $usnum = array(); $num = file('num.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $out = ''; foreach (file('usnum.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $key => $value) { $x = explode(':', $value); if($x) { if(in_array($x[0], $num)) { $x[1] = trim($x[1]) + 10; } $usnum[$x[0]] = $x[1]; $out = $out.PHP_EOL.$x[0].':'.$x[1]; } } file_put_contents('usnum.txt', ltrim($out)); echo ltrim($out); var_dump($usnum); ?>
Спасибо огромное! То, что нужно! Вот если бы ещё исправить кое-что, было бы вообще великолепно... Дело в том, что каждый раз после выполнения функции вверху страницы выводится следующее: 1234567890:10 0987654321:0array(2) { [1234567890]=> int(10) ["0987654321"]=> string(1) "0" } и так далее...
Ещё маленькая просьба... Поиск в "usnum.txt" строки, соответствующей введённому в "input" и вывод, расположенного после двоеточия.
Код (PHP): <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> </head> <body> <form method="get" action="?"> <p><b>Число:</b><br> <input type="text" name="num" size="40"> </p> <p><input type="submit" value="Отправить"> <input type="reset" value="Очистить"></p> </form> <?php if(isset($_GET['num']) && is_numeric($_GET['num'])) { $num = $_GET['num']; foreach (file('usnum.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $key => $value) { $x = explode(':', $value); if($x) { if( $x[0] == $num ) { echo 'Результат: '.$x[1].'<br>'; } } } } ?> </body> </html>