Перейти к содержимому

Сервис обмена электронных валют


Положение элемента в массиве

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 315 сообщений
  • Репутация: 5
0

Отправлено 22 Май 2013 - 21:31

нигде не могу найти функцию как определить положение элемента в массиве. Делаю фотогаллерею для просмотра фотографий, и нужно определять есть ли фотографии слева и справа от данной фотографии, чтобы ставить или не ставить стрелки влево/вправо. Как можно определять положение элемента? Есть такая функция вообще?

 

 

  • 0

#2 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 22 Май 2013 - 22:14

у каждого элемента есть индекс (ключ). для обычного одномерного массива индексы - это целые числа, начиная с нуля.
есть также функция count для подсчета количества элементов массива
  • 0

#3 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 22 Май 2013 - 22:19

а если у меня из базы данных получается двумерный массив такого вида $allarr[0]["id"], как его ключ получать. пробую функцию array_search, которая возвращает ключ элемента массива по значению как в документации сказано, но она возвращает false почему то...
  • 0

#4 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 22 Май 2013 - 22:26

та не, ты что то путаешь, если из базы, ты у тебя ассоциативный массив получается.

а ты че, галерею на php пишешь самостоятельно?
если да - то бросай эту затею и иди на сайт галереи fancybox , качай и используй
  • 0

#5 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 22 Май 2013 - 22:32

та не, ты что то путаешь, если из базы, ты у тебя ассоциативный массив получается.

как он может ассоциативный получаться? mysql_fetch_row простой массив возвращает же. у меня такая функция для выборки из базы
$query = "SELECT ".$field." FROM ".$tb_name." WHERE ".$where;
   $result = mysql_query($query) or die("".mysql_error());
   $data=array(); // объявляем массив
   for($i = 0; $i < mysql_num_rows($result); $i++)
   {
    $row = mysql_fetch_assoc($result);
    $data[]=$row;
   }
   return $data;

а ты че, галерею на php пишешь самостоятельно?
если да - то бросай эту затею и иди на сайт галереи fancybox , качай и используй

мне не такая как там нужна
  • 0

#6 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 22 Май 2013 - 22:39

$query = "SELECT ".$field." FROM ".$tb_name." WHERE ".$where; $result = mysql_query($query) or die("".mysql_error()); $data=array(); // объявляем массив for($i = 0; $i < mysql_num_rows($result); $i++) { $row = mysql_fetch_assoc($result); $data[]=$row; } return $data;


что то ты намудрил...
я выборку обычно так делаю
$query = 'SELECT `id` FROM `images`';
$res = mysql_query($query);
while($img = mysql_fetch_array($res)){
echo $img['id'];
}

  • 0

#7 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 22 Май 2013 - 23:11

как теперь отсюда получить ключи элементов?
  • 0

#8 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 22 Май 2013 - 23:14

$allarr[0]["id"]


Ну так можно проверить на существование $allarr[1]["id"]
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#9 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 22 Май 2013 - 23:28

нет, мне не надо на существование проверить. через GET передается id фотографии, которую сейчас смотрят, она в полном размере показывается. и из БД вытаскивается массив всех id фотографий. вот из этого массива мне нужно определить является ли она крайней левой и крайней правой в этом массиве, то есть нужно ставить стрелки влево в право или нет. Подсказали, что можно это определить по ключу, но теперь вопрос как получить ключ этого элемента массива. :blink:


  • 0

#10 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 22 Май 2013 - 23:50

Ну так если не существует элемента массива n+1, то текущее изображение крайнее. Так же само с n-1
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru