Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > сделать ключи последовательными


Автор: kichSman 11.3.2009, 13:08
У меня вот такая вот проблема. Суть в следующем. Из полученного массива:
Код

Array
(
    [0] => 28.02.2009
    [1] => 28.02.2009
    [2] => 28.02.2009
    [3] => 28.02.2009
    [4] => 28.02.2009
    [5] => 27.02.2009
    [6] => 27.02.2009
                ....
    [72] => 16.02.2009
    [73] => 16.02.2009
    [74] => 14.02.2009
)


Выуживаю только уникальные, что выводит следующее
Код

Array
(
    [0] => 28.02.2009
    [5] => 27.02.2009
    [7] => 26.02.2009
    [12] => 25.02.2009
    [16] => 24.02.2009
    [44] => 20.02.2009
    [47] => 19.02.2009
    [49] => 18.02.2009
    [52] => 17.02.2009
    [65] => 16.02.2009
    [74] => 14.02.2009
)

Как видно, ключи у них разные. А вопрос мой в том, что запустить цикл полученного массива с уникальным значением просто через for:
Код

for ($i = count($arr)-1; $i >=0 ; $i--){


не получается, так как ключи разные, а оч нужно, причем, не используя foreach

Автор: XupyprMV 11.3.2009, 13:58
Первый вариант: 

Цитата

Выуживаю только уникальные, что выводит следующее


Выудить в другой массив.

Второй вариант:
Цитата

Код

for ($i = count($arr)-1; $i >=0 ; $i--){



Вставить логику выуживания внутрь этого цикла (что нибудь тапа текущий элемент не равен предыдущему, тогда обрабатывать (предварительно ввести мнимый элемент в массив с индексом -1)).

Автор: kichSman 11.3.2009, 14:29
Цитата(XupyprMV @ 11.3.2009,  13:58)
Первый вариант: 
Выудить в другой массив.
...
Вставить логику выуживания внутрь этого цикла (что нибудь тапа текущий элемент не равен предыдущему, тогда обрабатывать (предварительно ввести мнимый элемент в массив с индексом -1)).

сделал проще, не юзая второго цикла.
Код

$new_arr=array_values(array_unique($first_arr));

выудил именно уникальные velue-сы в новый массив 

В результате, уникальные валуесы в новом массиве с новыми и упорядочными ключами
Код

Array
(
    [0] => 28.02.2009
    [1] => 27.02.2009
    [2] => 26.02.2009
    [3] => 25.02.2009
    [4] => 24.02.2009
    [5] => 20.02.2009
    [6] => 19.02.2009
    [7] => 18.02.2009
    [8] => 17.02.2009
    [9] => 16.02.2009
    [10] => 14.02.2009
)

При таком результате цикл будет правильно перебирать валуесы по ключам. 
Но всеравну спасибо;)

Автор: XupyprMV 11.3.2009, 14:33
Не знал... намотаю на ус... действительно так намного проще...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)