есть массив
$order = array(1 => 3, 4 => 3, 2 => 7, 5 => 7, 3 => 10, 6 => 10);
нужно чтобы значения массива 3, 3, 7, 7, 10, 10 заменить следующими значениями
0, 0, 1, 1, 2, 2 соответственно.
Тоесть, чтобы меньшему значению соответствовал 0, следующему по увеличению значению соотв. 1 и т. д.
Я догадываюсь, что нужно создать для этого функцию, но что делать внутри этой функции не пойму.
Подскажите, пожалуйста, как это сделать.
Спасибо.
Спустя 8 минут, 35 секунд (26.08.2011 - 13:54) Diss написал(а):
а просто переопределить значения не катит?
$order[6] = 2; например.
дайте по рукам тому кто учил вас так задавать такой массив
$order = array (3, 7, 10, 3, 7, 10); если индексы массива числа, тем более идущие по порядку, то => нафик не нужно.
$order[6] = 2; например.
$order = array(1 => 3, 4 => 3, 2 => 7, 5 => 7, 3 => 10, 6 => 10);
дайте по рукам тому кто учил вас так задавать такой массив
$order = array (3, 7, 10, 3, 7, 10); если индексы массива числа, тем более идущие по порядку, то => нафик не нужно.
Спустя 18 минут, 32 секунды (26.08.2011 - 14:13) Гость_Светлана написал(а):
Нет, просто переопределить нельзя, потомучто заранее не известны индексы и их значения, а именно этот массив я так, для наглядности привела.
Индексы массива также могут не идти по порядку. Суть такая
<?php
$order = array(1 => 3,
3 => 7,
6 => 10,
8 => 3,
9 => 7,
11 => 10); // массив может иметь такой вид, для примера
//нужно преобразовать этот массив следующим образом:
$order = array(1 => 0, //чтобы наименьшему значению соответствовал 0
3 => 1, //следующему по увеличению значению соотв 1 и т. д.
6 => 2,
8 => 0, //чтобы наименьшему значению соответствовал 0
9 => 1, //следующему по увеличению значению соотв 1 и т. д.
11 => 2);
Индексы массива также могут не идти по порядку. Суть такая
<?php
$order = array(1 => 3,
3 => 7,
6 => 10,
8 => 3,
9 => 7,
11 => 10); // массив может иметь такой вид, для примера
//нужно преобразовать этот массив следующим образом:
$order = array(1 => 0, //чтобы наименьшему значению соответствовал 0
3 => 1, //следующему по увеличению значению соотв 1 и т. д.
6 => 2,
8 => 0, //чтобы наименьшему значению соответствовал 0
9 => 1, //следующему по увеличению значению соотв 1 и т. д.
11 => 2);
Спустя 9 минут, 59 секунд (26.08.2011 - 14:23) Diss написал(а):
тогда думаю что foreach + нужная сортировка массива (думаю asort подойдет)