Помогите решить задачу отбора и сортировки значений

martin_yurov

Новичок
$per[1] - соответствовал единицам
$per[2] - двойкам

$aa[0] - соответствует первой переменной из $array = array(*, *, *, *, *, *, *);
$aa[1] - второй переменной

Значения получились плавающие $aa[1] - то 666, то 22 ( в зависимости от присвоенный значений переменных первого массива
а мне нужно привязать
единицы - одна ячейка
двойки - вторая

-~{}~ 25.02.10 17:00:

to Sigorma
________________________________________________________________________________
$array = array($one, $two, $three, $four, $five, $six, $seven, $eight, $nine, $ten, $eleven, $twelve, $thirteen, $fourteen, $fifteen, $sixteen, $seventeen);
$per = (array_count_values ($array));
$aa = array();
foreach ($per as $val => $ind){
$aa[]= str_repeat($val, $ind);
}
echo ("<h1>$aa[1]</h1>");
________________________________________________________________________________
 

Fortop

Новичок
кто-то понял что значит
Я понял, ему еще и ключ/значение нужен.

martin_yurov
Вы делаете какую-то лажу.

Но, если уж делаете - то напрягитесь и подумайте, как сделать так, чтобы ключ нового массива соответствовал тому что был в старом.
 

martin_yurov

Новичок
Fortop я не спорю что я делаю лажу, особенно судя по коду)
яж говорю я "программист" второй день как))

вопрос в том, что мне её нужно как-то сделать, поэтому я здесь!
 

Fortop

Новичок
dimagolov?
А просто добавлять в массив по ключу уже некошерно?
 

dimagolov

Новичок
Fortop, а если у него не все цифры будут в исходном массиве?

-~{}~ 25.02.10 10:45:

и числовые ключи в php могут не совпадать с порядком следования элементов в массиве, с тем порядком, в котором будет выбирать элементы foreach
 

Fortop

Новичок
Fortop, а если у него не все цифры будут в исходном массиве?
И? Будут ключи из того что есть.
Если вдруг у него будут не цифры вообще, то будет не числовой ключ.
Это запрещено?

и числовые ключи в php могут не совпадать с порядком следования элементов в массиве, с тем порядком, в котором будет выбирать элементы foreach
Какое это имеет значение?

У него именованная привязка по ключу к ячейке:
martin_yurov
а мне нужно привязать
единицы - одна ячейка
двойки - вторая
 

martin_yurov

Новичок
Всем спасибо!

вставил ksort, всё работает как запланировано.

код приобрёл следующий вид =>
______________________________________________________
$array = array($one, $two, $three, $four, $five, $six, $seven, $eight, $nine, $ten, $eleven, $twelve, $thirteen, $fourteen, $fifteen, $sixteen, $seventeen);
$per = (array_count_values ($array));
ksort($per);
$aa = array();
foreach ($per as $val => $ind){
$aa[]= str_repeat($val, $ind);
}
echo ("<h1>$aa[1]</h1>") // выводит повторяющиеся единицы ( например 111)
echo ("<h1>$aa[2]</h1>") // выводит двойки ( 22 )
и т.д. всё гуд
_______________________________________________________
 

dimagolov

Новичок
вообще-то она выводит не кол-во единиц/двоек, а уникальные элементы столько раз, сколько их было в первом массиве. и опять таки, в $aa[1] попадут не единицы, а вторые по счету уникальные элементы исходного массива (если эти уникальные отсортировать).
 

fixxxer

К.О.
Партнер клуба
Автор оригинала: dimagolov
martin_yurov, так после array_count_values слелай ksort и будет тебе счастье
Вот кстати у него в плане того, что такое массив, нормальная человеческая логика, а не похапешная. :)
 
Сверху