<?php
$array = [
'a' => 'food',
'b' => 'foo',
'c' => 'goo',
'd' => 'foo',
'e' => 'good'
];
$needle = 'foo';
$newValue = 'bar';
function array_replace_value(&$ar, $value, $replacement)
{
$ar = preg_replace(
'/^' . preg_quote($value, '/') . '$/',
$replacement,
$ar
);
}
array_replace_value($array, $needle, $newValue);
var_export($array);
preferences:
42.74 ms | 402 KiB | 5 Q