Вопрос по массиву php

12 3
f0x
На сайте с 20.09.2006
Offline
116
f0x
1674

Друзья.

Есть массив:

Array ( [0] => 1.jpg [1] => 2.jpg [2] => 3.jpg [3] => 4.jpg )

есть переменная:

$var='3.jpg '

Как мне вытащить из массива соседей элемента ([2] => 3.jpg) соответствующего переменой $var , то есть на выходе получить 2.jpg и 4.jpg

Буду благодарен за подсказку, так как красивого решения не нашел, а оно должно быть :idea:

[Удален]
#1

http://ru2.php.net/manual/ru/function.array-search.php

$i = array_search..

$left = $arr[$i-1];

$right = $arr[$i+1];

думаю более красивое не найдешь, ЛИБО!

$all = array_slice($arr,$i-1,3);

f0x
На сайте с 20.09.2006
Offline
116
f0x
#2
bearman:
http://ru2.php.net/manual/ru/function.array-search.php


$i = array_search..

$left = $arr[$i-1];
$right = $arr[$i+1];

думаю более красивое не найдешь, ЛИБО!

$all = array_slice($arr,$i-1,3);

Спасибо.

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

Array ( [321] => 1.jpg [3324] => 2.jpg [34556] => 3.jpg [6554] => 4.jpg )

получается только с array_slice будет самым оптимальным вариант!?

[Удален]
#3
f0x:
Спасибо.
Еще забыл сказать что ключи могут идти не подряд а быть вида

Array ( [321] => 1.jpg [3324] => 2.jpg [34556] => 3.jpg [6554] => 4.jpg )

тогда $keys = array_keys($arr);

$left = $arr[$keys[$i-1]];

$right = $arr[$keys[$i+1]];

нечто такое :)

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#4
f0x:
Буду благодарен за подсказку, так как красивого решения не нашел, а оно должно быть

Нужен хэш из двухстороннего связного списка:

class A

{
public $prevId;
public $value;
public $nextId;
}

$a = $hash[$id];
$prev = $hash[$a->prevId];
$next = $hash[$a->nextId];
Неизменность точки зрения неизменно порождает иллюзию понимания.
[Удален]
#5

Слава Шевцов, сурово

f0x
На сайте с 20.09.2006
Offline
116
f0x
#6
Слава Шевцов:
Нужен хэш из двухстороннего связного списка:

class A

{
public $prevId;
public $value;
public $nextId;
}

$a = $hash[$id];
$prev = $array[$a->prevId];
$next = $array[$a->nextId];

Туплю, не понял софсем )

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#7

bearman, классика.

Слава Шевцов добавил 26.05.2009 в 23:27

f0x:
Туплю, не понял софсем

Чуть поправил.

f0x
На сайте с 20.09.2006
Offline
116
f0x
#8
Слава Шевцов:
bearman, классика.

Слава Шевцов добавил 26.05.2009 в 23:27
Чуть поправил.

Спасибо, но все равно туго, не дадите ссылку где можно об этом прочесть

[Удален]
#9
Слава Шевцов:
bearman, классика.

Слава Шевцов добавил 26.05.2009 в 23:27
Чуть поправил.

можно вопрос? почему же нет тогда функций next, prev? ведь классически надо было бы функции эти сделать :)

Слава Шевцов
На сайте с 23.07.2005
Offline
370
#10

Дональд Кнут. Искусство программирования, том 1. Основные алгоритмы.

Или: http://trubetskoy1.narod.ru/alg/lists.html

Слава Шевцов добавил 26.05.2009 в 23:40

bearman:
можно вопрос? почему же нет тогда функций next, prev?

Есть. Они просто раскрыты в виде

$prev = $hash[$a->prevId]; 

и

$next = $hash[$a->nextId]; 
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий