Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: array_diff

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
SAD
Отправлено: 13 Декабря, 2009 - 13:21:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




есть массив строк вида ABCD, в нем храняться все перестановки этих букв(то есть всего 24 элемента). и есть массив таких же строк, но не всех перестановок(13 элементов). я с помощью array_diff($per,$mas), где $per - массив всех перестановок, а $mas- не всех перестановок. при таком случае у меня должен получиться массив из 11 элементов, но получается массив из 23 элементов, нет в этом массиве последнего элемента из $per, если сделать array_diff($mas,$per), то получится массив $per только без последнего элемента ,
если сделать array_intersect($per,$mas), то выведется только последний элемент из $per.
все буквы английские. я считываю $per из файла, и знаю, что проблема из за этого , потому что если вбить массив $per вручную, то все норм. Проблема знаю из за чего, но в чем причина?

(Отредактировано автором: 13 Декабря, 2009 - 14:09:21)

 
 Top
Ch_chov
Отправлено: 13 Декабря, 2009 - 14:17:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Покажи свой код
 
 Top
SAD
Отправлено: 13 Декабря, 2009 - 14:23:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




PHP:
скопировать код в буфер обмена
  1. $src = fopen('tmp/per.txt',"r");
  2. while ( !feof($src) )
  3.   $per[] = fgets($src,464564);
  4. fclose($src);

в per.txt строки хранятся так
ABCD
ABDC
.......
DCBA
после строк пробелов НЕТ
вот сравнение

вот и все в принципе, но если $per вбить вручную, то все работает

(Отредактировано автором: 13 Декабря, 2009 - 14:24:52)

 
 Top
Ch_chov
Отправлено: 13 Декабря, 2009 - 14:29:29
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Так попробуй:
PHP:
скопировать код в буфер обмена
  1. $src = fopen('per.txt',"r");
  2. while ( !feof($src) )
  3.   $per[] = rtrim(fgets($src,464564));
  4. fclose($src);
 
 Top
SAD
Отправлено: 13 Декабря, 2009 - 14:34:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




спасибо, заработало. я как раз и думал, что проблема с пробелами .но не знал, где именно
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB