заменить все значения в массиве с буквой «o» в php - PullRequest
0 голосов
/ 26 мая 2020

Это мой массив

$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);

Этот метод полностью ручной. Хотя мне нужен способ автоматически отслеживать букву «о» в любом значении и перемещать их с помощью «0».

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Вы можете использовать array_map (для сопоставления всех значений массива с новыми с помощью некоторой функции преобразования) вместе с str_replace (для замены o на 0):

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

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

(Обратите внимание, что здесь используется синтаксис PHP 7.4 стрелочной функции . Вы можете использовать function ($el) { return str_replace('o', '0', $el) } вместо fn($el) => str_replace('o', '0', $el), если вам нужно использовать старую версию PHP.)

0 голосов
/ 26 мая 2020
foreach ($arr as $key => $string) {
    $arr[$key] = str_replace("o", "0", $string);
}

ИЛИ

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