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

Форум PHP

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

 

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

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

тема: Как проходя по массиву получить предыдущий и следующий элемент
 
 автор: neokortex   (26.07.2011 в 18:21)   письмо автору
 
 

Массив вида

$array = array(
    '654' => array('k1'=>'v1', 'k2'=>'v2',),
    '899' => array('k1'=>'v1', 'k2'=>'v2',),
    '441' => array('k1'=>'v1', 'k2'=>'v2',),
    ...
)

Найти текущий элемент можно так:

foreach ($array as $k=>$v) {
    $currentElement = $array[$k]; // так
    $currentElement = $v['k1']; // или просто получить некоторые данные
    // А как получить предыдущий и следующий элемент массива?
}

  Ответить  
 
 автор: psychomc   (26.07.2011 в 18:38)   письмо автору
 
   для: neokortex   (26.07.2011 в 18:21)
 

prev($array)
next($array)

  Ответить  
 
 автор: neokortex   (26.07.2011 в 18:42)   письмо автору
 
   для: psychomc   (26.07.2011 в 18:38)
 

Пробовал уже. Нормально работает только next($array);
Если еще использовать prev() или current() - хрень какая-то получается.

  Ответить  
 
 автор: MHz   (26.07.2011 в 19:06)   письмо автору
 
   для: neokortex   (26.07.2011 в 18:42)
 

Это потому что они указатель смещают.
Как вариант получить список ключей массива и пройтись по нему в for () отнимая или прибавляя единицу к индексу.

  Ответить  
 
 автор: neokortex   (26.07.2011 в 19:08)   письмо автору
 
   для: MHz   (26.07.2011 в 19:06)
 

массив не нумерованный

  Ответить  
 
 автор: MHz   (26.07.2011 в 19:13)   письмо автору
 
   для: neokortex   (26.07.2011 в 19:08)
 

Я заметил.
<?php

$Keys 
array_keys ($Array);

for (
$i 0$i sizeof ($Keys); $i++)
{
    
$Array[$Keys[$i 1]]; // Предыдущий элемент
    
$Array[$Keys[$i]]; // Текущий элемент
    
$Array[$Keys[$i 1]]; // Следующий элемент
}

?>

  Ответить  
 
 автор: neokortex   (26.07.2011 в 19:22)   письмо автору
 
   для: MHz   (26.07.2011 в 19:13)
 

а слона то я и не приметил. спасибо большое.

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

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