Помощник
|
Сравнение файлов/массивов |
locky-yotu
|
Сообщение
#1
|
||
|
|
||
|
|||
alexdrob |
29.7.2010, 18:58;
Ответить: alexdrob
Сообщение
#2
|
|
замените
[PHP]for($i=0; $i < $res_num; $i++) {echo $result[$i];}[/PHP] на [PHP]print_r($result);[/PHP] и я думаю вам всё станет ясно) |
|
|
locky-yotu
|
Сообщение
#3
|
|
Говорит
Array ( [5] => y [6] => z ) Что-то пока не ясно. Оно вывело последние элементы массивов, да? То есть весь массив в $result не попадает? Или нет... Я просто не понимаю, что попало в $result... ТО есть по какому принципу?
|
|
|
ZhukV |
29.7.2010, 19:09;
Ответить: ZhukV
Сообщение
#4
|
|
Если я верно понял, нужно слить два или более массива в едино целое.
Тогда может пойти в помощь функция array_merge и array_merge_reqursive, хотя если честно, у них есть некоторые баги, что даже очень даже бесит... В результате: [PHP] /*--------------------------------------------------------- Функция рекрусивной замены массивов Стек главного массива имеет жесткую ссылку ---------------------------------------------------------*/ function arrayMerge($ARRAY, &$HEYSTACK){ $KEY["ARRAY"] = array_keys($ARRAY); for($i = 0; $i < count($KEY["ARRAY"]); $i++){ $NOW_KEY_ARRAY = $KEY["ARRAY"][$i]; if(is_array($ARRAY[$NOW_KEY_ARRAY])){ arrayMerge($ARRAY[$NOW_KEY_ARRAY], $HEYSTACK[$NOW_KEY_ARRAY]); }else/*if(is_string($ARRAY[$NOW_KEY_ARRAY]) || is_integer($ARRAY[$NOW_KEY_ARRAY]))*/{ $HEYSTACK[$NOW_KEY_ARRAY] = $ARRAY[$NOW_KEY_ARRAY]; } } } [/PHP] |
|
|
ZhukV |
29.7.2010, 19:14;
Ответить: ZhukV
Сообщение
#5
|
|
Если уж нужно сравнить файлы на идентичность текстов или другого наполнения, тогда наверное md5 и может serialize (мое мнение), поскольку сравнения очень огромных строк теряет ОЧЕНЬ МНОГО РЕСУРСОВ, не заикаясь уж о веремни.
[PHP] $f1 = '1.txt'; $f2 = '2.txt'; $hex1 = md5(file_get_contents($f1)); $hex2 = md5(file_get_contents($f2)); if($hex1 == $hex2){ $IDENTY = true; } else{ $IDENTY = false; } [/PHP] |
|
|
alexdrob |
29.7.2010, 19:16;
Ответить: alexdrob
Сообщение
#6
|
|
в ресульт попадает то что есть в первом массиве и нет во втором, то есть z но с индексом с первого массива то есть 6
[5] => y скорей всего у вас после одного y стоит перенос строки а после второго не стоит вот y и попал |
|
|
locky-yotu
|
Сообщение
#7
|
|
ZhukV, нет, я хочу просто получить строки из первого файла, не содержащиеся во втором. Как это делает функция array_diff. Только почему она работает не так, как написано, я не понимаю.
|
|
|
locky-yotu
|
Сообщение
#8
|
|
alexdrob, точно, про перенос я и не подумал)
|
|
|
locky-yotu
|
Сообщение
#9
|
|
Ну а почему вот такой цикл-то ничего не выводит?..
[php]<?php $array01 = file('test01.txt'); $array02 = file('test02.txt'); $result = array_diff ($array01, $array02); for ($i=0;$i<count($result);$i++) { echo $result[$i]; } ?>[/php]Хотя [php]print_r($result);[/php] выдает [6] => z , и если ставить ограничение для $i не count($result), а 7 - то все выводится. Т.е. не понятно, почему индексом для "z" выводится 6, а не 0...
|
|
|
alexdrob |
29.7.2010, 19:30;
Ответить: alexdrob
Сообщение
#10
|
|
цикл
$i=0;$i<count($result) что сделает? i=0 пока меньше 1го i++ result[0] = не существует у вас индекс 6 [PHP]<?php $array01 = file('test01.txt'); $array02 = file('test02.txt'); $result = array_diff ($array01, $array02); foreach ($result as $k => $v) { echo $v; } ?>[/PHP] Т.е. не понятно, почему индексом для "z" выводится 6, а не 0 то что у вас в первом файле z под индексом 6 |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
FinFile - новые возможности для монетизации Ваших файлов! | 3 | FileXmaster | 2077 | 25.7.2020, 16:10 автор: -Condis- |
|
ExchangeRates.Pro: сравнение цен Bitcoin/Crypto обменников, бирж, P2P рынка 🚀 Поможем найти лучшие цены на обмен 34 криптовалют в 255 странах |
8 | ExchangeRatesPro | 3126 | 12.2.2020, 18:46 автор: ExchangeRatesPro |
|
Сравнение 2-х страниц на одну тему | 1 | rad_mw | 1056 | 28.6.2018, 18:27 автор: Napoleon-007 |
|
Добавление файлов | 0 | PHP_Programist | 2569 | 25.4.2018, 12:25 автор: PHP_Programist |
|
Добавление файлов на сайт | 1 | Dess33 | 2799 | 8.4.2018, 2:32 автор: rasul |
Текстовая версия | Сейчас: 19.4.2024, 21:16 |