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

martin_yurov

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

Не могу сообразить как решить поставленную задачу.
есть 17 уже расчитанных переменных, каждая переменная - число от 0 до 9.
Нужно придумать скрипт который бы подсчитывал:
сколько единиц;
сколько двоек;
и т.д.

Если кому интересно - пробую расчитать квадрат пифагора. Не могу сообразить как заполнить квадрат.
http://frei.hobby.ru/na/ - тут пример.
 

martin_yurov

Новичок
Спасибо!

-~{}~ 25.02.10 12:10:

Вопрос возможно глупый, но как получившийся массив

<?php
$array = array(1, 3, 1, 3, 1, 2);
$per = (array_count_values($array));
?>
echo ($per[1]) // выводится значение 3 (кол-во однёрок)

как преобразовать получившиеся значения чтобы вид был следующим

echo ($per[1]) // значение 111
echo ($per[2]) // значение 2
echo ($per[3]) // значение 33
 

martin_yurov

Новичок
Спасибо! получилось следующее
____________________________
$array = array(1, 1, 2, 1, 3, 2, 2);
$per = (array_count_values ($array));
foreach ($per as $val => $ind){
$aa = str_repeat($val, $ind);
echo ("<h1>$aa</h1>"); // выводит 111 <br> 222 <br> 3
}
____________________________

А как теперь сделать так, чтобы переменной $аа присвоить только индекс 1 ($per[1])
Или придётся для каждого массива ($per[x]) свой цикл писать?
 

Fortop

Новичок
А как теперь сделать так, чтобы переменной $аа присвоить только индекс 1 ($per[1])
Или придётся для каждого массива ($per[x]) свой цикл писать?
Циклы как раз для того, чтобы не присваивать переменные вручную и 3мя строчками вывести массив из 20 значений.

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

martin_yurov

Новичок
Мне просто значения нужно в разных местах вывести
"111" - одной яцейке
"222" - в другой
и т.д.

PS: Я "программист" второй день буквально)) Пробую делать всё по логике вещей...
 

Sigorma

Новичок
Вестимо что для этого необходимо объявить переменную $aa как массив и результат каждой итерации цикла закидывать элементом в массив $aa.
 

Фанат

oncle terrible
Команда форума
а зачем переменной $аа присваивать значение переменной $per[1]?
сразу к ней нельзя обратиться?
 

Sigorma

Новичок
PHP:
$aa = str_repeat($val, $ind);
замени на
PHP:
$aa[] = str_repeat($val, $ind);
не забудь объявить $aa как массив.
 

martin_yurov

Новичок
объявлять $aa массивом нужно в пределах цикла foreach?
перед выражением $aa[] = str_repeat($val, $ind); ?
$aa = array;?
 

dimagolov

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

Sigorma

Новичок
martin_yurov
а сам как думаешь? что будет если объявить в цикле, мне кажется ничего хорошего.
 

martin_yurov

Новичок
Вроде получилось
______________________________
$array = array(1, 1, 2, 1, 3, 2, 2);
$per = (array_count_values ($array));
$aa = array();
foreach ($per as $val => $ind){
$aa[]= str_repeat($val, $ind);
}
echo ("<h1>$aa[1]</h1>");
______________________________

Но теперь другая проблема

$aa[1] не соответствует 1, теперь это первый элемент из "$array = array(1, 1, 2, 1, 3, 2, 2);"

PS у меня в скобках "array(1, 1, 2, 1, 3, 2, 2)", не цифры а переменные
 

dimagolov

Новичок
martin_yurov, массивы нумеруются с 0

п.с. кто-то понял что значит
$aa[1] не соответствует 1, теперь это первый элемент из "$array = array(1, 1, 2, 1, 3, 2, 2);"

PS у меня в скобках "array(1, 1, 2, 1, 3, 2, 2)", не цифры а переменные
 

martin_yurov

Новичок
Автор оригинала: dimagolov
martin_yurov, массивы нумеруются с 0
Да да я ошибся ;)


Автор оригинала: martin_yurov

$aa[1] не соответствует 1, теперь это первый элемент из "$array = array(1, 1, 2, 1, 3, 2, 2);"

PS у меня в скобках "array(1, 1, 2, 1, 3, 2, 2)", не цифры а переменные
Я имел ввиду, что у меня в коде в скобках переменные , тут я просто цыфры вставил для наглядности
 
Сверху