Замена значения в массиве по условию и вывод измененного значения

Есть простой код, который берет данные в текстовом файле(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 шт):

Автор решения: Infernal_Rain

Свою задачу я решил следующим образом:

Перед формированием таблицы создаем массив сопоставлений (то, что необходимо заменять):

$translate = [
            'Brazil' => 'Бразили',
            'Russia' => 'Россия'
          ];

а после того, как строка, взятая из файла txt попадает в массив $value, вставляем сопоставление:

                     $value = explode("|", $value); {

                    #Подменяем значения в массиве-строке $value на значения массива $translate
                    foreach ($value as $k => $v) {
                        if (isset($translate[$v])) {
                            $value[$k] = $translate[$v];
                        }
                    }

                    // тут уже формируем таблицу ...
→ Ссылка