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
Форумы портала PHP.SU :: Версия для печати :: вывод значений из двух массивов
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » вывод значений из двух массивов

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

1. broshurkaplus - 17 Ноября, 2011 - 20:44:57 - перейти к сообщению
здравствуйте
чтото сегодня голова не варит
подскажите как сделать

есть 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-первый ключ

жду с нетерпением
2. snikers987 - 17 Ноября, 2011 - 20:59:49 - перейти к сообщению
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.  

можно так
3. broshurkaplus - 17 Ноября, 2011 - 21:38:53 - перейти к сообщению
это если одна папка в другой то считает всё,я думаю,
а если у меня так стуктура уже есть

images/img/
images/preview/

?
4. snikers987 - 17 Ноября, 2011 - 21:50:08 - перейти к сообщению
broshurkaplus пишет:
это если одна папка в другой то считает всё,я думаю,
а если у меня так стуктура уже есть

images/img/
images/preview/

?

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

PHP:
скопировать код в буфер обмена
  1.  
  2. $imageDir = 'images/img/';
  3. $previewDir = 'images/preview/';
  4.  
5. broshurkaplus - 18 Ноября, 2011 - 09:51:08 - перейти к сообщению
спасибо я подобрал этот код, всё работает, единственное, когда мы проверяем есть ли такое же имя в каталоге превью получается ведь что имена должны быть одинаковы?
те после проверки эта часть
$previewDir.'no-preview.jpg';
значит что если нет имени - не выводить картинку или вывести картинку с именем no-preview.jpg ?

теперь придётся менять имена...
если не трудно подскажите можно ли сделать чтобы для превью с другим именем работало - выбирало картинка с инд0из img брало картинку с инд0 из prev , чтоб не менять имена на одинаковые
6. snikers987 - 18 Ноября, 2011 - 10:17:54 - перейти к сообщению
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.  

это?
7. broshurkaplus - 18 Ноября, 2011 - 10:47:49 - перейти к сообщению
СПАСИБО

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

год учусь, но не силен ещё с коленка писать, мало практики.
сохраню оба варианта.

 

Powered by ExBB FM 1.0 RC1