вообщем, нужен скрипт типа: начальный файл \ конечный файл. 1 вида: PHP: |qwe|grab|asdasd|ololo|qwe rewqq |t6r6|43w4sd|ajd|77olo|ara|arr arr2 а второй PHP: |arr|arr2|qwsxx|1wsfg|qsxc |qwe|rewqq|ggtyft|tr5t4|665654 Так вот, нужно чтобы в конце был вариант PHP: |qwe|grab|asdasd|ololo|qwe rewqq|qwe|rewqq|ggtyft|tr5t4|665654 |t6r6|43w4sd|ajd|77olo|ara|arr arr2|arr|arr2|qwsxx|1wsfg|qsxc т.е не просто соединение строк 1 к 1, вторая ко второй, а их сортировка на одинаковость конца первого и начала второго
про сортировку не понял но соединить можно так PHP: $file=file("file.txt");// файл один $file1=file("file2.txt");// второй файл for($i=0;$i<count($file);$i++) { $save .=rtrim($file[$i]).$file1[$i]; } file_put_contents("save.txt",$save); если в первом файле будет строк меньше чем во втором тогда не допишеться остальное со второго файла
bafoed потрудитесь объяснить, что имеется ввиду под сортировкой. И смотрите тут: http://php.net/usort
попробую еще раз.. Вот допустим файл 1.тхт Code: |VISA|100500|USA|+5665445|633|John Micke| |VISA|123456|AUS|+1234556|777|Arnold Mass| А вот файл 2.txt Code: |Arnold|Mass|qwe@qwe.com|AL| |John|Micke|123@123.us|US| А теперь такой должен быть резултат: Code: |VISA|100500|USA|+5665445|633|John Micke| John|Micke|123@123.us|US| |VISA|123456|AUS|+1234556|777|Arnold Mass|Arnold|Mass|qwe@qwe.com|AL| Т.е не простое склеивание строк, а чтобы имена совпадали, в каком бы порядке они не шли в обоих текстовиках. Надеюсь, я понятно обьяснил.
bafoed Для _небольших_ файлов и если в 1.txt нет строк с одинаковыми именем и фамилией: PHP: $f1 = file_get_contents('1.txt'); $f2 = file('2.txt'); preg_match_all('~^.*?\|([^\|]+)\|\s*$~msi', $f1, $data); $arr = array_combine($data[1], $data[0]); foreach($f2 as $row) { $tmp = explode('|', $row); $tmp_name = trim($tmp[1]).' '.trim($tmp[2]); if (in_array($tmp_name, $data[1])) echo trim($row).substr($arr[$tmp_name],1)."\r\n"; } На самом деле условий работоспособности - целый ворох, и потому я бы советовал загнать все это в БД и работать уже с ней
спасибо, попробую. Пишу просто парсер на РНР, а не сайт) ____ на выходе получается бред вида: PHP: |Arnold|Mass|qwe@qwe.com|AL|VISA|123456|AUS|+1234556|777|Arnold Mass| |John|Micke|123@123.us|US|VISA|100500|USA|+5665445|633|John Micke|
PHP: <?php $f1 = file('1.txt'); $f2 = file_get_contents('2.txt'); foreach ($f1 as $str) { $cc = explode('|',$str); list($name1,$name2) = explode(' ', $cc[5]); $name1 = trim($name1); $name2 = trim($name2); $pattern = "#$name1\|$name2\|.*#i"; $str2 = find_cc($pattern); if($str2){ echo trim($str).' '.$str2.'<br>'; } else { echo 'Данные по имени '.$name1.' '.$name2.' не были найдены в файле 2.txt <br>'; } } function find_cc($pattern){ global $f2; if(preg_match($pattern,$f2,$m)){ return trim($m[0]); } else { return false; } } ?> Результат: Подходит такой вариант?