Замена значения в массиве по условию и вывод измененного значения
Есть простой код, который берет данные в текстовом файле(data_file.txt), разбивает их по знаку "|" и выводит в таблицу.
$file_name = "data_file.txt"; $data = file($file_name); $i = 1; //Счётчик для нумерации строк таблицы ?>
<table>
<tr>
<th>Столбец 1</th>
<th>Столбец 2</th>
<th>Столбец 3</th>
</tr>
<?php
foreach ($data as $value) :
$value = explode("|", $value); {
echo '<td>' . $i++ . '</td>';
echo '<td>' . $value[0] . '</td>';
echo '<td>' . $value[1] . '</td>';
echo '</tr>';
}
endforeach;
?>
</table>
<?php
}
Так вот значения из файла, которые попадают в 3-ий столбец ( $value[1] ) нужно изменять по условию. Например, данные такие:
Иванов Иван|Brazil
Петр Петров|Russia
Как организовать проверку и подмену значения (Brazil, Russia) в массиве и выводить в таблицу уже подмененные значения? Например названия на русском языке. Т.е. Если Brazil - > вывести Бразилия.
Ответы (1 шт):
Свою задачу я решил следующим образом:
Перед формированием таблицы создаем массив сопоставлений (то, что необходимо заменять):
$translate = [
'Brazil' => 'Бразили',
'Russia' => 'Россия'
];
а после того, как строка, взятая из файла txt попадает в массив $value, вставляем сопоставление:
$value = explode("|", $value); {
#Подменяем значения в массиве-строке $value на значения массива $translate
foreach ($value as $k => $v) {
if (isset($translate[$v])) {
$value[$k] = $translate[$v];
}
}
// тут уже формируем таблицу ...