Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить пред и след значение массива
 
 автор: Андддрей   (13.02.2013 в 17:36)   письмо автору
 
 

Здравствуйте.
C простой задачей бьюсь уже второй час (
Помогите с элегантным решением =)



<?

// есть массив с фото
$photos= array(
   
34 => array('id'=>34,'photo'=>'34.jpg''other' => '.......'),
   
35 => array('id'=>35,'photo'=>'35.jpg''other' => '.......'),
   
38 => array('id'=>38,'photo'=>'38.jpg''other' => '.......'),
   
47 => array('id'=>47,'photo'=>'47.jpg''other' => '.......'),
   
55 => array('id'=>55,'photo'=>'55.jpg''other' => '.......'),
   
87 => array('id'=>87,'photo'=>'87.jpg''other' => '.......')
);

// есть текущий элемент 
$current 47;

// выводим теущее фото 
echo $photos[$current]['photo'];

// собственно теперь задача
// 1. вывести номер $current фотки, например 4 из count($photos);


// 2. Получить id предыдущей и следующей фотки
// В данном примере 38 и 55


?>

  Ответить  
 
 автор: confirm   (13.02.2013 в 17:43)   письмо автору
 
   для: Андддрей   (13.02.2013 в 17:36)
 

Встречный вопрос - зачем дублировать ключами массива id фото?

  Ответить  
 
 автор: Андддрей   (13.02.2013 в 17:54)   письмо автору
 
   для: confirm   (13.02.2013 в 17:43)
 

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

  Ответить  
 
 автор: confirm   (13.02.2013 в 18:05)   письмо автору
 
   для: Андддрей   (13.02.2013 в 17:54)
 

Если их нет, то ничего не стоит обратиться к необходимому вложению массива по индексу, и получить значение любого его ключа.
Так что обращать внимание нужно на все, ибо это может сыграть не последнюю роль.

  Ответить  
 
 автор: Андддрей   (13.02.2013 в 18:09)   письмо автору
 
   для: confirm   (13.02.2013 в 18:05)
 

Хорошо, чтобы небыло путаницы переписал массив


<?
$photos
= array( 
        
34 => array(......), 
        
35 => array(......), 
        
38 => array(......), 
        
47 => array(......), 
        
55 => array(......), 
        
87 => array(......) 
);

$cur 38;

# нужно получить порядковый номер $cur, а также предыдущий и следующий ключ.
?>

  Ответить  
 
 автор: confirm   (13.02.2013 в 18:16)   письмо автору
 
   для: Андддрей   (13.02.2013 в 18:09)
 

Нет тут порядкового номера, есть ключи. Что вам мешает написать так:
<?
$photos
= array(  
       array(
'id'=>34,...),  
       array(
'id'=>35,...),  
       
//..... 
       
array('id'=>87,...)  
);

и работать с индексами?
Все определяется задачами, и уж под задачи надо закладывать структуру данных.

  Ответить  
 
 автор: CrazyAngel   (13.02.2013 в 18:21)   письмо автору
 
   для: Андддрей   (13.02.2013 в 18:09)
 

http://www.php.net/manual/ru/function.prev.php
http://www.php.net/manual/ru/function.current.php
http://www.php.net/manual/ru/function.next.php
http://www.php.net/manual/ru/function.key.php

  Ответить  
 
 автор: Valick   (13.02.2013 в 19:29)   письмо автору
 
   для: Андддрей   (13.02.2013 в 17:36)
 

подозреваю что массив у вас из базы данных, а если это так, то задачу необходимо решать средствами СУРБД

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования