[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив
Demjan
Есть массив (список) с элементами
[2] => A
[3] => B
[4] => V
[27] => G
[36] => D

Других элементов не существует. Нужно чтобы их ключи (или индексы - не знаю как правильно) шли по порядку от 0 до того сколько элементов в списке окажется. Наверняка есть специальная функция, но нигде не могу о ней ничего найти.

Это нужно для того чтобы вывести их цикле

for($n=0; isset($n_SERVER[$n]); $n++) { обработать каждый элемент }





Спустя 3 минуты, 19 секунд (25.10.2011 - 19:32) Winston написал(а):
$arr = array(2 => 'A', 3 => 'B', 4 => 'V', 27 => 'G', 36 => 'D');
print_r($arr);
print_r(array_values($arr));

Используй array_values

Спустя 1 минута, 8 секунд (25.10.2011 - 19:33) Игорь_Vasinsky написал(а):
ты открой любой сайт с функциями для работы с массивами php

- там много функций для сортировки - выберешь ту что нужна и заодно на другие посмотришь

а по по воду ключи-элементы

array(key=>value) wink.gif

Спустя 41 секунда (25.10.2011 - 19:34) Игорь_Vasinsky написал(а):
Winston
на блюдечке с голубой коёмочкой biggrin.gif

Спустя 2 минуты, 31 секунда (25.10.2011 - 19:36) Demjan написал(а):
В предшествующем куске кода такой не неуПорядочный массив создаётся, но мне сложнее вопрос сформулировать, слишком пространно получится (как обычно у меня выходит)... Надо задавать.

Код:

$n = array_diff ($k, $i); // в массив $n помещаются элементы массива $k , не найденные в массиве $i.


Полученный массив $n это и есть описанный неупорядоченный список. Может можно сделать чтоб ключи элементов в $n шли от 0 и по порядку?

Выручит ответ на любой из вопросов, а оба - совсем здорово. Надеюсь на помощь, жду, заранее спасибо!

Спустя 2 минуты, 2 секунды (25.10.2011 - 19:38) Winston написал(а):
Цитата (Игорь_Vasinsky @ 25.10.2011 - 19:34)
на блюдечке с голубой коёмочкой

Мне нравиться писать код, таким образом больше узнаешь и запоминаешь как решается та или иная задача, если автор копипастер, то он сделает свое дело, а если нет то разберет пример и поймет smile.gif

Спустя 1 минута, 2 секунды (25.10.2011 - 19:39) Winston написал(а):
Demjan
Я же тебе написал код? Сам не можешь теперь свой подправить? :blink:
$n = array_values(array_diff ($k, $i));

Спустя 7 минут, 22 секунды (25.10.2011 - 19:47) Serdg написал(а):
функция sort() как-раз заменяет все ключи в массиве на от 0 и так далее по порядку

Спустя 34 секунды (25.10.2011 - 19:47) Игорь_Vasinsky написал(а):
с 0 и по порядку

$arr = array($val1, val3, ....)


или так

$arr = array();

$arr[] = $val1;
$arr[] = $val7;

Спустя 43 минуты, 14 секунд (25.10.2011 - 20:30) Demjan написал(а):
Ёс-ес-а-бэ-хэ-эс-эс! Супер. Такое в поисковике врят-ли найдёшь, а здесь на форуме я знаю что помощь оперативно и сколько надо. Всем-всем спасибо!

Winston, строчку
$n = array_values(array_diff ($k, $i));
в одну строку у меня смелости-бы не хватило написать biggrin.gif , я её на две расписал сначала.

sort($n); тоже результат дала какой нужен,

а вот объявление массива $n = array() при заполнениии этого массива с помощью array_diff происходит всё-равно не по порядку, и с array(key=>value) как работать что-то сходу тоже не вкурил. Но всё работает и даже мона двумя способами smile.gif . Через поисковик такого не найти если не знаешь как правильно сформулировать запрос. Друзья, товарищи, господа, спасибо! Я, кста тоже учусь во время написания кода, под нужную задачу - сразу видно результат, несколько вариантов попробуешь. Поисковик часто - это куча совсем не того чтива. Мдя. Пока!

Спустя 2 минуты, 16 секунд (25.10.2011 - 20:33) Игорь_Vasinsky написал(а):
ТЫ же путаешься в названиях, вот я и написал:

array(ключ=>значение)

Спустя 1 минута, 46 секунд (25.10.2011 - 20:34) Demjan написал(а):
до встречи точнее

Спустя 5 минут, 36 секунд (25.10.2011 - 20:40) Demjan написал(а):
Цитата (Игорь_Vasinsky @ 25.10.2011 - 17:33)
ТЫ же путаешься в названиях, вот я и написал:

array(ключ=>значение)

Мм, ну это наверно нужно специально цикл делать, вроде

for(i-=1, isset(), i++){array(i=>...

блин, запутался, не понимаю как сделать. Но спасибо всё равно ОГРОМНОЕ, винстон ловкий вариант отписал как раз под мой код, как знал.

Спустя 7 минут, 29 секунд (25.10.2011 - 20:47) Winston написал(а):
И вообще, что за хрень ?
for($n=0; isset($n_SERVER[$n]); $n++)

Особенно с isset :blink:
Если хочешь убрать пустые элементы, то напиши
$n = array_values(array_diff ($k, $i, array('')));

А потом смело работай и обрабатывай
for($n=0; $i < count($n_SERVER); $n++)

Спустя 58 минут, 23 секунды (25.10.2011 - 21:46) Demjan написал(а):
конструкция ценная конечно, но в массиве который я получаю при сравнении двух массивов в $N заносятся только те, которые отсутствуют во втором, причём с ключами первого, поэтому нужно их упорядочивать и делать нумерацию от 0, а то обработать проблематично. сейчас всё готово, слава богам и умельцам wink.gif

Спустя 8 минут, 23 секунды (25.10.2011 - 21:54) quickxyan написал(а):
ну еще можно было бы просто отсоритровать и вывести через foreach()
Быстрый ответ:

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