DB から返された行があり、列で使用される特定のマークアップ文字を表示用の適切な文字に変更する必要があります。
$row = mysqli_fetch_array($res, MYSQLI_ASSOC); //the result of query is 1 row
$markup = array("@", "#", "&", "$"); // this is our markup
$meaning = array("↑", "↓", "(dil.)", "(conc.)"); // this is our meaning of the markup for the display
foreach ($row as $k => $v) { //for each element of the array we change one char for the other
$v = str_replace ($markup, $meaning, $v);
echo "<br>$v";
}
UPD はさらに奇妙になっています。配列に変更が加えられる前に str_replace が行われたかどうかを追跡することで間違いを犯しました。それを修正しました。しかし、この配列の特殊な出力が下にあり、まだ置換されていない文字が表示されます!
$reagent_no = "reaction_l" . $i; // determining the column number, irrelevant to the issue
echo "<td>\n<h3>{$row[$reagent_no]}</h3></td>"; //output of the supposedly
//changed characters, but it still outputs the markup, as if i didnt do anything to the array previously