iЛаборатория » Blog Archive » Интересные решения на PHP

Интересные решения на PHP

0

Добрый день!

Сегодня, как видно из названия поста, я бы хотел поделиться интересными способами решения задач (определенных), на языке программирования PHP. Хотелось бы показать интересный способ работы с ассоциативным массивом, на примере решения задачи: “нахождение коэффициентов”, интересный способ получения переданных переменных ($_POST[], $_GET[]). Данные способы не претендуют на оригинальность, но они по-своему красивы, вот это я сейчас и попытаюсь Вам показать.

Первое решение, связанно с лабораторной работой, которую я недавно делал студенту программисту. Лучше всего сразу рассказать об области применения, так я думаю и реализация станет намного понятнее. Данный метод применяется в функции, основной задачей которой является нахождение коэффициентов и присваивание полученных коэффициентов – ассоциации. Под ассоциацией я понимаю слово (символ)  ключ. Сразу же уточню, что данный метод не просто вносит в массив пару ключ – значение, а сразу проверяет, есть ли такая ассоциация (ключ) и если есть, то заново пересчитывает коэффициент. Ну я думаю хватит теории и разговоров, пора демонстрировать.

//Вычисляем знак
if($i == ($count_param-1)){ $minus = -1; }else{$minus = 1;}
foreach($word as $pos => $letter)
{
    //Цель данной функции привести такой пример: A+AC=AD к
    //1*A+10*A+1*C=10*A+1*D
    //С учетом знаков при переносе
    $coefficient[$letter] += $minus * pow(10, count($word) - ($pos + 1));
}

Что есть что? Знак, как видно из комментария, относиться к упрощению, т.е. когда упрощаем уравнения такого вида 1*A + 10*A + 1*C = 10 *A + 1*D, приводим к 1*A + 10*A + 1*C – 10 *A – 1*D = 0, тут все понятно. Массив $word, содержит слово, $pos – его позиция (от 0 до $count_param-1), $letter – символ. Теперь еще не много объясню, что мы тут сделали такого хитрого. В массив coefficient, мы заносим каждую букву слова, а значение – это ее коэффициент, получается $coefficient['A'] = 1, это при занесении первой буквы, заносим дальше: $coefficient['A'] = 11, а самую последнюю вычитаем, получаем в итоге: $coefficient['A'] = 1. Вот в этом то и есть “крутость” метода, нам ничего не надо считать самим, все это сделает PHP, при заносе повторного элемента.

Следующий способ позволяет вытащить переданные данные, как из GET, так и из POST массива. О данном методе нечего писать (много), поэтому сразу пример:

Все предельно просто. Скажу одно что тут используется тернарная условная операция и в общем то благодаря ей данный способ ясен и красив.




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

С уважением, Главный Лаборант!

Советуем почитать:



2 комментария к записи “Интересные решения на PHP”

  1. Канат Гайлимов, написал:

    Интересный примерчик, правда немного непонятный или я с утра торможу :)
    Сделай где if/else перенос, а то тяжело читается

    [Ответить на комментарий]

    Главный Лаборант ответил на комментарий:

    Вообще делаю перенос просто тут короткие выражения, поэтому проще так.
    Вот так бы выглядело:

    if($i == ($count_param-1))
        $minus = -1;
    else
        $minus = 1;

    [Ответить на комментарий]


Оставить свой комментарий

XHTML: Вы можете использовать следующие теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">