0

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
4

2 に答える 2

1

問題は、str_replaceが の後に実行されることechoです。

試す:

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";
}
于 2013-04-19T18:01:10.647 に答える