替换数组中 php 中具有 "o" 字母的所有值

replace all values in array that have "o" letter in php

这是我的数组

$arr = array("dog", "cat", "lion");

现在我想用 0 替换任何带有字母 o 的值。 示例:

$arr = array("d0g", "cat", "li0n");

这是我的方法:

$arr = array("dog", "cat", "lion");

$arr2 = array("d0g", "cat", "li0n");
$rep = array_replace($arr, $arr2);
var_dump($rep);

这个方法完全是手动的。虽然我想要一种方法来自动跟踪任何值中的字母 'o' 并用 '0' 移动它们。

foreach ($arr as $key => $string) {
    $arr[$key] = str_replace("o", "0", $string);
}

$arr = array_map(function ($el) { return str_replace("o", "0", $el);}, $arr);

您可以使用 array_map(使用某种转换函数将数组的所有值映射到新值)和 str_replace(将 o 替换为 0 ):

$arr = ['dog', 'cat', 'lion'];

$rep = array_map(fn($el) => str_replace('o', '0', $el), $arr);

(请注意,这使用 PHP 7.4 arrow function syntax。如果您必须使用较旧的 PHP 版本,则可以使用 function ($el) { return str_replace('o', '0', $el) } 而不是 fn($el) => str_replace('o', '0', $el)。)