t00rt
@t00rt

Почему if не срабатывает?

Есть многомерный массив (2 уровня), есть желание вывести его данные изменяя стиль вывода определенных ячеек.
Ключ ячейки заголовка имеет свое название "lesson_name" его то и нужно выделить при выводе.
Проблема в том что при прохождении циклом по массиву и проверке имени ключа происходит "задваивание", т.е. выделение действует и на следующую ячейку. Почему if срабатывает даже тогда когда ключ не равен "lesson_name"?

Код ниже прилагаю:

$test_mass[]= [
	"lesson_name" => "Установка",
	"текст1",
	"текст2",
	"текст3"
];

$test_mass[]= [
	"lesson_name" => "Виды настроек",
	"текст4",
	"текст5",
	"текст6",
	"текст7",
];




foreach ($test_mass as $mas) {
	foreach ($mas as $key=>$text) {
		if ($key == 'lesson_name') {
			$out_text.= "-";
		}
		$out_text.= $text."</br>";
	}
}



echo $out_text;



echo "<pre>";
echo var_dump($test_mass);
echo "</pre>";
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
t00rt
Добавьте знак = в условие
$test_mass[] = [
    "lesson_name" => "Установка",
    "текст1",
    "текст2",
    "текст3"
];

$test_mass[] = [
    "lesson_name" => "Виды настроек",
    "текст4",
    "текст5",
    "текст6",
    "текст7",
];

$out_text = '';

foreach ($test_mass as $mas) {
    foreach ($mas as $key => $text) {
        if ($key === 'lesson_name') {
            $out_text .= '-';
        }
        $out_text .= $text . "</br>";
    }
}

echo $out_text;
Ответ написан
Комментировать
IgorPI
@IgorPI
== это оператор сравнения, который сравнивает значение переменных
=== это оператор сравнения, который сравнивает значение переменных и тип данных
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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