Правильная работа else в forech

92
30 июля 2019, 17:20

При указании условия esle в цикле выводится не 1 значение переменной, а зацикленное значение. Массив вида:

[
{
    "user": "Петров Иван",
    "Department": "1",
    "Total": 9688,
    "Addon_1": "1",
    "Addon_2": "2",
    "Addon_3": "3",
    "topuser": "4"
},
{       "user": "Иванов Петр",
    "Department": "1",
    "Total": 9688,
    "Addon_1": "1",
    "Addon_2": "2",
    "Addon_3": "3",
    "topuser": "4"
}

]

$arr = json_decode($response, true);
$a = "Петров Иван";
<?php
foreach ($arr as $row) { 
    if($row['user'] == $a)
        echo $row['user'];
    else {
        echo $a;
    }
}
?>

Как правильно вывести если "user" в массиве = $a вывести "user" из массива, если такое значение не найдено вывести переменную $a.

Answer 1

Приблизительный алгоритм может быть таким:

$userFound = false;    // флаг, сообщающий что пользователь найден 
foreach ($arr as $row) { 
    if($row['user'] == $a)
        $userFound = true;  
        echo $row['user'];
        break;         // прерываем цикл, так как дальнейшие элементы нас не интересуют
    }
}
// так как пользователь НЕ найден - выводим что-то еще.
if (!$userFound) {
    echo $a;
}
READ ALSO
Как сохранить html код в мета поле поста?

Как сохранить html код в мета поле поста?

У меня есть вот такой код

114
Не записывает текст в bat-файл С++ [закрыт]

Не записывает текст в bat-файл С++ [закрыт]

Решил написать самую обычную программу, которая будет создавать файл, в него вписывать командуbat, а там уже запускать её X кол-во раз

141
Путь к системным файлам Windows 10 C++

Путь к системным файлам Windows 10 C++

Возникла небольшая проблема при проверки подписи системного файлаПришла информация (не важно от куда, но приходит она в таком виде и этого...

121
Последовательность С++

Последовательность С++

Бесконечная числовая последовательность задана с помощью формулы ее k-го элемента:

151