как foreach вывести в условие if

derol12

Новичок
День добрый, целый день потратил но так и не решил как решить эту задачу.
Имеется код который выводит цифры от 8 и до 22 в столбик с разными статусами, статус зависит от того присутствует ли цифра в условии или нет в моем случае это 10, 5, 17 - у них статус выводиться свободно.
PHP:
<?php
for ($i=8; $i<22; $i++)
{
if($i == '10' or $i == '5' or $i == '17') {
$b = $i + 1;
echo "<br> $i:00 - $b:00 Свободно";
}
else
{
$b = $i + 1;
echo "<br> $i:00 - $b:00 Занято";
}}
?>
Что я хочу:
я хочу подставить массив вместо цифр 10, 15, 17
PHP:
<?
foreach($arDay["events"] as $arEvent)
{
echo $arEvent["time"];
}
?>

Результат: цифры от 8 до 22   выводиться будит максимум 14 цифр


Спасибо за помощь!
 

derol12

Новичок
Составил вот такой код не работает:
переделал код, постояно выводит Не найдено


PHP:
<?php
foreach($arDay["events"] as $arEvent)
{
$a = $arEvent["time"];
$h = preg_replace('/\:00&nbsp;/', '', $m);   // удаляем не нужные символы например: результат получеться 18:00&nbsp; - удаляем :00&nbsp; и остаеться целое число 18
{
if (in_array( 16, $h, true)) {
    echo "$h Найдено \n <br>";
}
else
{
echo "Не найдено $h<br>";
}
}}
?>
Результат:
не найдено 16
не найдено 17
 

Фанат

oncle terrible
Команда форума
ну и где у тебя в этой строчке тот array, который ты собирался подставить?
 

derol12

Новичок
ну и где у тебя в этой строчке тот array, который ты собирался подставить?
PHP:
if ([B]in_array[/B]( 16, $h, true)) { // $h массив , 16 если число совпало должно выходить сообщение Найдено
echo "$h Найдено \n <br>";
я немножко изменил логику, потому что не знаю как сделал иначе и решил так:

Массив с числами Например: $h=10,15,17
Условие: 8==$h {echo Найдено/ Не найдено}
Условие: 9==$h{ echo Найдено/ Не найдено}
Условие: 10==$h {echo Найдено/ Не найдено}
...
Условие: 22==$h {echo Найдено/ Не найдено}
 

Фанат

oncle terrible
Команда форума
$h - это не массив.
массивы в РНР пишутся совсем не так.
$h=array(10,15,17); - вот это - массив.
 

derol12

Новичок
в мое случае вот:

PHP:
foreach($arDay["events"] as $arEvent)
{
$a = $arEvent["time"];
$h = preg_replace('/\:00&nbsp;/', '', $m);   // удаляем не нужные символы например: результат получеться 18:00&nbsp; - удаляем :00&nbsp; и остаеться целое число 18
{
$arEvent["time"] - из этой переменно выходит столько элементов сколько я создал тоесть если я создал 3 элемента, то все что находиться в foreach выполняеться 3 раза и появляются эти три цыфры в моем случае 10, 15, 17
 

Фанат

oncle terrible
Команда форума
если у тебя в результате получается одиночное число, то почему ты все время говоришь о массивах?
 

derol12

Новичок
$arEvent["time"]- это множествено число оно выполняетьс foreach 3 раза, раз три элемента
возможно я перепутал, я подрузумевал действие foreach, в самом начале я хотел чтобы все выглядило так:

foreach($arDay["events"] as $arEvent)
{echo $arEvent["time"] }

for ($i=8; $i<22; $i++)
{if условие (результат1(из foreach) == "$i" or результат2(из foreach) == "$i" or результат3(из foreach) == "$i" )} // {if ("10" == "$i" or "15" == "$i" or "17" == "$i" )}
echo "Совподает"
else "Не совподает"
 

Фанат

oncle terrible
Команда форума
тебе сразу сказали - засовываешь свои числа в массив , и используешь предложенную функцию. в чем проблема-то?
 
Сверху