Удалить ключи в массиве по правилам на PHP

Евгений16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
05.07.2013

Жду от вас:

1. Оценку задания.

2. Ссылку на пример вашего кода php.

(Код можно разместить на collabedit, codepad, итд)

Задача (для понимания реальная логика заменена на животных):

1. Убрать всех животных по качествам, которых пользователь любит исходя из диапазона конфига.

На входе:

ev9eniy.ru/tasks/290613.filter/index.html

.массив запроса - $_REQUEST

.массив выборки из базы - $data

.конфиг - правила удаления, файл /config.php

для удобства ключи имею логичное название.

Исходник:

ev9eniy.ru/tasks/290613.filter/array-filter.zip

Алгоритм для реализации:

Вход:

$_REQUEST =

array(

"скорость":array(

"медленный":array(

"пользователь любит штук":100

),

"быстрый":array(

"пользователь любит штук":80

),

"молниеносный":array(

"пользователь любит штук":69

)

$data =

0=>array(

"скорость"=>"медленный",

"животное"=>"кот"

),

1=>array(

"скорость"=>"быстрый",

"животное"=>"гусь"

),

2=>array(

"скорость"=>"молниеносный",

"животное"=>"сом"

),

1. Сделать по ключам $data индексацию (Так как реально значений в массиве около 70).

Пример:

$dataIndex[животное][медленный][кот] = номера в массиве (1)

$dataIndex[животное][быстрый][гусь] = номера в массиве (2)

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

Пример: (Тут реализуется логика вычисления максимального значение, что нужно пользователю)

"медленный":array(

"пользователь любит штук":100//Максимальное число, значит 100%

),

"быстрый":array(

"пользователь любит штук":80//От 100 - 80%

),

"молниеносный":array(

"пользователь любит штук":69//69%

)

3. По правилу из конфига готовим фильтр для удаления в массиве $data

array("from":70,"to":100)

Пример:

"медленный":array(

"пользователь любит штук":100//оставить - 100%

),

"быстрый":array(

"пользователь любит штук":80//Оставить - 80%

),

"молниеносный":array(

"пользователь любит штук":69//Удалить - 69%

)

4. По индексу $dataIndex и фильтру делаем удаление из массива $data.

Предоплата с протекцией через WebMoney.

1. 50% в начале (с протекцией).

2. 50% после исправления всех ошибок (с протекцией).

6 июля в 23:00 по Москве смогу ответить по вашей заявке.