Удалить ключи в массиве по правилам на PHP
Жду от вас:
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 по Москве смогу ответить по вашей заявке.