如何在PHP中用空字符串替换0

I'm building a report in PHP, and am really new to this language.

I read the documentation on preg_replace, but it's not working exactly as I expect.

Here's my code:

    $pattern = 0;
    $replacement = ' ';

    $report_output.= '
        <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td>
    ';

Instead of replacing a result of 0 with an empty string, it replaces all results with an empty string. The round works great like this:

    <td>'.round($row[$win_count]).'</td>

It's just when I put the preg_replace around it, it says 'phooey, I shall replace everything'. What am I doing wrong?

Try this instead

$pattern = '/^0$/';
$replacement = ' ';

$report_output.= '
    <td>'.preg_replace($pattern, $replacement, round($row[$win_count])).'</td>
';
  • The ^ means match start of string
  • The 0 is match one 0
  • The $ means match end of string

So it will only match '0' one zero start to finish and not something like this hell0 the end 0 wont be matched because the l is not the start of the string.

Your question is confusing if you want any 0 anywhere then use this instead

$pattern = '/0/';

With delimiters.