@remakeme

Что делает этот код php?

Что делает этот код? В чем ошибка?

$month = "Февраль";

$arResult = [
"123" => [
"ID" => 123
"NAME" => "Рубашка",
"CODE" => "rd123",
"DETAIL_TEXT" => "Красная рубашка в клеточку",
"PREVIEW_PICTURE" => 4432
],
"124" => [
"ID" => 124
"NAME" => "Кофта",
"CODE" => "rd124",
"DETAIL_TEXT" => "Теплая кофта",
"PREVIEW_PICTURE" => 2235
],
"125" => [
"ID" => 125
"NAME" => "Шорты",
"CODE" => "rd125",
"DETAIL_TEXT" => "Летние шорты, хорошо подходят под пляжный период",
"PREVIEW_PICTURE" => 1743
],
"126" => [
"ID" => 126
"NAME" => "Футболка",
"CODE" => "rd126",
"DETAIL_TEXT" => "Гавайская футболка",
"PREVIEW_PICTURE" => 1009
]
];

foreach($arResult as $element){
    $res = 0;
    switch($month){
        case "Январь": if(strpos($element["NAME"], "кофта") > 0) $res = $element["ID"]; break;
        case "Июнь": if(strpos($element["NAME"], "футболка") > 0) $res = $element["ID"]; break;
        case "Сентябрь":  if(strpos($element["NAME"], "шор") > 0) $res = $element["ID"]; break;
    }
}

if($res > 0){
    echo "<div><h1>{$arResult[$res]['NAME']}</h1><p>{$arResult[$res]['DETAIL_TEXT']}</p></div>";
}
  • Вопрос задан
  • 209 просмотров
Решения вопроса 2
TommyV888
@TommyV888 Куратор тега PHP
-
Выводит товар в зависимости от месяца. Ошибка в том, что у вас нету условия для февраля:
$month = "Февраль";
...
switch($month){
case "Январь": if(strpos($element["NAME"], "кофта") > 0) $res = $element["ID"]; break;
case "Июнь": if(strpos($element["NAME"], "футболка") > 0) $res = $element["ID"]; break;
case "Сентябрь": if(strpos($element["NAME"], "шор") > 0) $res = $element["ID"]; break;
}
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Перебирает все элементы массива $arResult, и выводит название/описание из элемента $arResult, если $month равен "Январь", Июнь" или "Сентябрь", а название содержит "кофта", "футболка" или "шор".
Не работает потому, что среди вариантов "Января", "Июнь" и "Сентябрь" нет варианта "Февраль".
И еще, вместо strpos() лучше использовать stripos(), и >= 0 вместо > 0
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы