Цитата |
//Установка кодировки кода в юникод |
Цитата (Игорь_Vasinsky @ 10.11.2013 - 12:42) |
если это тебе не нужно - нам и тем более. ![]() |
Цитата (Игорь_Vasinsky @ 10.11.2013 - 16:57) |
я ещё раз говорю - сначала сделай - потом критикуй. |
Цитата (Игорь_Vasinsky @ 10.11.2013 - 14:57) |
dr.nomore я ещё раз говорю - сначала сделай - потом критикуй. |
//Установка кодировки кода в юникод
header('Content-type: text/html; charset=utf8');
//Если не пустое $_POST['el'] - поле посланное из формы
if(!empty($_POST['el']))
{
//Разделить $_POST['el'] - разделитель перенос строки, в итоге $row - получится массив
$row = explode("\n", $_POST['el']);
//Запуск цикла от 0 до кол-ва элементов в массиве $row - с шагом 1
for($i = 0; $i < count($row); $i++)
{
//Заполняется массив $matrix - в качестве ключа $i, приэтом каждый шаг $row[i] так же разбирается на куски - разделител
- запятая
$matrix[$i] = explode(',', $row[$i]);
//для каждого $matrix[i] создаётся элемент массива $sum - записывается 0
$sum[$i] = 0;
}
//Так же итерация для массива $matrix от 0 до кол-ва элементов в $matrix
for($i = 0; $i < count($matrix); $i++)
{
for($j = 0; $j < count($matrix[$i]); $j++)
{
//Внутренний цикл, т.к. $matrix[$i] - так же является массивом 0
//если $matrix[$i][$j] = 0 то создаётся $nulls[$j] = 1 для ключа $j
if($matrix[$i][$j] == 0)
{
$nulls[$j] = 1;
}
//Делению по модулю - если $j чётное число и $matrix[$i][$j] > 0 то $sum[$i] увеличивается на $matrix[$i][$j]
if($j % 2 == 0 && $matrix[$i][$j] > 0)
{
$sum[$i] += $matrix[$i][$j];
}
}
}
//Сортировка массива
asort($sum);
//Сброс массива
reset($sum);
$i = 0;
//В цикле разбирается на эл-ты $sum - массив на $k - ключ $v - содержание ключа
foreach($sum as $k => $v)
{
//Собирается новый массив $new_matrix[$i] - каждый шаг $i увеличивается на 1
$new_matrix[$i] = $matrix[$k];
$i++;
}
//Вывод результата - разница между ко-вами элементов 2х массивов count($matrix[1])-count($nulls)
echo 'Количество ненулевых столбцов: '. (count($matrix[1]) - count($nulls)) .'<br/>----------<br/>Отсортированная матрица<br/>';
//Опять цикл - чтобы разобрать массив и вывести каждый эл-т массива
for($i = 0; $i < count($new_matrix); $i++)
{
for($j = 0; $j < count($new_matrix[$i]); $j++)
{
//Вывод
echo $new_matrix[$i][$j];
//Если if(($j+1) не равно кол-ву элементов в массиве $new_matrix[$i]
if(($j + 1) != count($new_matrix[$i]))
{
//Рисуем дефис
echo ' - ';
}
}
//Перенос строки
echo '<br/>';
}
}
//Форма в которую вводится строка, которую php скрипт и обрабатывает
echo '<form action="'. $_SERVER['PHP_SELF'] .'" method="post">Введите матрицу:<br />
<textarea name="el" cols="20" rows="10">'. @$_POST['el'] .'</textarea><br/>
<input type="submit" value="Вперед" /></form>';
?>