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 :: вывод значений из двух массивов

 PHP.SU

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


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

> Описание: вывод значений из двух массивов ( имена файлов из каталогов)
broshurkaplus
Отправлено: 17 Ноября, 2011 - 20:44:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




здравствуйте
чтото сегодня голова не варит
подскажите как сделать

есть 2 папки p1 и p2
ститываю так

CODE (htmlphp):
скопировать код в буфер обмена
  1. $dir1='p1';
  2. $dir2='p2';
  3.  
  4. $a1=glob("$dir1/*.jpg");
  5. $a2=glob("$dir2/*.jpg");
  6.  


теперь мне нужно в цикле получить конструкцию следующего вида

CODE (htmlphp):
скопировать код в буфер обмена
  1. foreach  ..........
  2.  
  3. print  "<li><a href='$имя_из_1'><img src='$имя_из_2' /></a></li>";


очень нужно для галереи типа превью - биг_картинка, чтоб вручную имена картинок не вгонять

подскажите пожалуйста как организовать вывод имён картинок, чтоб имя из 1-первый ключ и имя 2-первый ключ

жду с нетерпением
 
 Top
snikers987
Отправлено: 17 Ноября, 2011 - 20:59:49
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $imageDir = 'images/';
  3. $previewDir = 'images/preview/';
  4. $images = glob($imageDir."*.jpg");
  5.  
  6. foreach($images as $image){
  7.         $imageName = basename($image);
  8.         $pathToPreview = $previewDir.$imageName;
  9.         $preview = file_exists($pathToPreview) ? $pathToPreview : $previewDir.'no-preview.jpg';
  10.         echo "<a href ='{$imageDir}{$imageName}'><img src='{$preview}'/></a>";
  11.        
  12. }
  13.  

можно так

(Отредактировано автором: 17 Ноября, 2011 - 21:21:09)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
broshurkaplus
Отправлено: 17 Ноября, 2011 - 21:38:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




это если одна папка в другой то считает всё,я думаю,
а если у меня так стуктура уже есть

images/img/
images/preview/

?
 
 Top
snikers987
Отправлено: 17 Ноября, 2011 - 21:50:08
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




broshurkaplus пишет:
это если одна папка в другой то считает всё,я думаю,
а если у меня так стуктура уже есть

images/img/
images/preview/

?

Измени тут на свои пути:

PHP:
скопировать код в буфер обмена
  1.  
  2. $imageDir = 'images/img/';
  3. $previewDir = 'images/preview/';
  4.  

(Отредактировано автором: 17 Ноября, 2011 - 21:52:27)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
broshurkaplus
Отправлено: 18 Ноября, 2011 - 09:51:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




спасибо я подобрал этот код, всё работает, единственное, когда мы проверяем есть ли такое же имя в каталоге превью получается ведь что имена должны быть одинаковы?
те после проверки эта часть
$previewDir.'no-preview.jpg';
значит что если нет имени - не выводить картинку или вывести картинку с именем no-preview.jpg ?

теперь придётся менять имена...
если не трудно подскажите можно ли сделать чтобы для превью с другим именем работало - выбирало картинка с инд0из img брало картинку с инд0 из prev , чтоб не менять имена на одинаковые
 
 Top
snikers987
Отправлено: 18 Ноября, 2011 - 10:17:54
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $image = glob('images/img/*.jpg');
  3. $preview = glob('images/preview/*.jpg');
  4.  
  5. for($i=0; $i<count($image); $i++){
  6.  
  7.         if($key = array_search('no-preview.jpg', $preview)){
  8.                 unset($preview[$key]);
  9.         }
  10.         echo "<a href='{$image[$i]}'><img src='".(!empty($preview[$i]) ? $preview[$i] : 'images/preview/no-preview.jpg')."' ></a>";
  11.  
  12. }
  13. //var_dump($image);
  14. //var_dump($preview);
  15.  
  16.  

это?

(Отредактировано автором: 18 Ноября, 2011 - 10:19:29)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
broshurkaplus
Отправлено: 18 Ноября, 2011 - 10:47:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




СПАСИБО

всё ок, я сначала сам смотрел в сторону
for() и array_search поэтому и считывал в масив два каталога, вы ускорили мне процесс.

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB