If внутри foreach?

Имею вот такой массив
Array
(
[0] => Array
(
[ot_id] => 2
[ot_name] => Сисюкин Александр Валерьевич
[ot_email] => nenene@nenen.ru
[ot_text] => поцоацол ацлцал цла цла цлл цалц лцл ацал ц
ц вц вцв ц
[ot_kat] => 2
)

[1] => Array
(
[ot_id] => 1
[ot_name] => Никишин Алексей Васильевич
[ot_email] => net@net.net
[ot_text] => Проверка отзыва простой текст заполнение
[ot_kat] => 1
)

[2] => Array
(
[kat_id] => 2
[kat_otz] => Плохой отзыв
)

[3] => Array
(
[kat_id] => 1
[kat_otz] => Хороший отзыв
)

)

пытаюсь его вывести вот так

foreach ($res as $one)
{
    echo $one['ot_name'] . '<br />';
    echo $one['ot_text'] . '<br />';
    if ($one['ot_kat'] == $one['kat_id'])
    {
        echo $one['kat_otz'] . '<br />';
    } else
    {
        echo 'не работает';
    }


}

В результате хотел увидеть что если [ot_kat] = [kat_id] то выводил название категории которая хранится в ячейке массива [kat_otz]
в силу своей неэрудированисти не понимаю почему нельзя вставлять условие в foreach...
  • Вопрос задан
  • 2597 просмотров
Решения вопроса 1
Outoverlay
@Outoverlay
А где у Вас ключ kat_id в массиве?
Чё за уеб*нский массив вообще?
И if тут причем. Как конструкция, то верно, а вот $one['ot_kat'] == $one['kat_id'].
Посколько вы не указали что в переменной $res, я могу сказать, что, что-то из них: $one['ot_kat'], $one['kat_id'] будет возвращать null

$res_1 = array(
array(
'ot_id' => 1,
'ot_name' => 'Сисюкин Александр Валерьевич',
'ot_email' => 'nenene@nenen.ru',
'ot_text' => 'поцоацол ацлцал цла цла цлл цалц лцл ацал ц
ц вц вцв ц',
'ot_kat' => 1
)
);
$res_2 = array(
array(
'kat_id' => 1,
'kat_otz' => 'Хороший отзыв'
)
);
foreach( $res_1 as $val_1 ){
foreach( $res_2 as $val_2 ){
if( $val_1['ot_kat'] == $val_2['kat_id'] ){
//code...

break;
}

}


}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VladimirAndreev
@VladimirAndreev
php web dev
у тебя нет ни одного элемента в массиве, в котором выполнялось бы твое условие.
а так - нет никаких препятствий, кроме здравого смысла, по вкладыванию IFов в циклы
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы