[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сдвиг элемента массива
ApuktaChehov
Здравствуйте!

Имеется массив(список) чего то.
Каждый элемент массива необходимо сдвигать к началу или к концу всего массива, на одну позицию, по желанию пользователей.

Вот думаю, куда копать. Может есть уже какие то функции, или писать свою?

Огромное спасибо!



Спустя 13 минут, 32 секунды (16.10.2009 - 09:08) glock18 написал(а):
array_shift, array_unshift может быть подойдет?

Спустя 4 минуты, 40 секунд (16.10.2009 - 09:13) ApuktaChehov написал(а):
Хорошая идея, но к сожалению не применима.

Вот пример:

[0]=>"Вася", [1]=>"Федя", [2]=>"Леша".

Нужно поменять местами Васю и Федю, т.е.

[0]=>"Федя", [1]=>"Вася", [2]=>"Леша".

Спустя 8 минут, 35 секунд (16.10.2009 - 09:22) glock18 написал(а):
а, вон чего... тады array_splice

Спустя 17 минут, 36 секунд (16.10.2009 - 09:39) ApuktaChehov написал(а):
array_splice
Пока не получается удалить и заменить предыдущие элементы.

Спустя 26 минут, 24 секунды (16.10.2009 - 10:06) glock18 написал(а):
ApuktaChehov
PHP
$array = array('Вася''Петя''Алеша');

function 
move(&$array$index$direction 'up')
{
    switch (
$direction)
    {
        case 
'up':
            
array_splice($array$index 10$array[$index]);
            
array_splice($array$index 11);
            break;
        case 
'down'
            
array_splice($array$index 20$array[$index]);
            
array_splice($array$index1);
            break;
        default:
            throw new 
Exception(__FUNCTION__'Unrecognized direction');
    }
}
move($array1'up');


Спустя 37 минут, 40 секунд (16.10.2009 - 10:43) ApuktaChehov написал(а):
Вот спасибо, а я тоже сделал, но как всегда через одно место, но за то работает.

Смысл такой же. Узнаем ключ массива, который необходимо сместить. Потом, в зависимости от того, куда смещать, вычисляем следующий или предыдущий ключ. После узнаем какие значения соответствуют этим ключам, и перезаписываем их наоборот. Правда, функции я не использовал...

Ну.. всеравно спасибо огромное!


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.