[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Был на собеседовании сегодня.
Страницы: 1, 2, 3, 4, 5, 6
Zzepish
сходил сегодня на собеседование. Со мной побеседовали. Дали тестик (который был убер легким).
ПРишел домой- дали простое ТЗ:
есть файл data.txt
Цитата
id name surname grade position
0 Vasya Petrov 3 manager
1 Petya Ivanov 5 seo
2 Masha Vasileva 3 designer
3 Roma Sidorov 5 programmer
4 Ivan Lobanov 4 manager
5 Vasya Nazarov 3 manager
6 Petya Samarin 5 seo
7 Masha Baeva 3 designer
8 Nikita Sidorov 5 programmer
9 Ivan Gromov 4 manager


и само тз:
Используя данные из файла data.txt(данные считывать с файла), провести с ними некоторые манипуляции:
1. Отсортировать данные по убыванию значения grade и вывести данные на экран
2. Отсортировать данные по возрастанию значения grade и вывести данные на экран только тех у кого grade более 3
3. Вывести средние значения показателя grade по всем position.

Реализовал так:
<?php
error_reporting(-1);
$cats=array();
$all=array(array());
$result=array();
$var=null;
$grades_res=Array();

function wtf($array){
echo '<pre>'.print_r($array,1).'</pre>';
}

$file=fopen('data.txt','r');
for($i=0;!feof($file);$i++){
$get_string=fgets($file);
if($i==0)
$cats=str_replace("\r\n",'',explode(' ',$get_string));
else{
for($z=0;$z<count($result=str_replace("\r\n",'',explode(' ',$get_string)));$z++)
$all[$i-1][$cats[$z]]=$result[$z];


if(!isset($grades_res[$all[$i-1]['position']])){
$grades_res[$all[$i-1]['position']][0]=$all[$i-1]['grade'];
$grades_res[$all[$i-1]['position']][1]=1;
}
else{
$grades_res[$all[$i-1]['position']][0]+=$all[$i-1]['grade'];
$grades_res[$all[$i-1]['position']][1]++;
}

}

$result=null;
}



for($i=0;$i<count($all);$i++){
if(isset($all[$i+1]['grade']) && $all[$i]['grade']<$all[$i+1]['grade']){
$var=$all[$i];
$all[$i]=$all[$i+1];
$all[$i+1]=$var;
$i=0;
}
}


wtf($all,1); //вывод сортировки по убыванию значения grade

for($i=count($all)-1;$i>=0;$i--){
if($all[$i]['grade']>3){
wtf($all[$i]);//Отсортировать данные по возрастанию значения grade и вывести данные на экран только тех у кого grade более 3
}
}


foreach($grades_res AS $key=>$val){
echo $key.'=>'.$grades_res[$key][0]/$grades_res[$key][1].'<br>';////Вывести средние значения показателя grade по всем position
}


Как думаете- реализация нормальная?
Быстрый ответ:

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