替换数组中所有在PHP中带有“ o”字母的值

问题描述 投票:0回答:2

这是我的数组

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

现在我想将字母o的任何值替换为0。示例:

$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”。

php str-replace array-map array-replace
2个回答
0
投票
foreach ($arr as $key => $string) {
    $arr[$key] = str_replace("o", "0", $string);
}

OR

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

0
投票

您可以将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)。)

© www.soinside.com 2019 - 2024. All rights reserved.