Другой альтернативой может быть json_encode
+ str_replace()
, а затем json_decode()
:
$data = array
(
0 => array
(
'title' => '',
'body' => 'empty',
),
1 => array
(
'title' => 'set',
'body' => 'not-empty',
),
);
$data = json_encode($data); // [{"title":"","body":"empty"},{"title":"set","body":"not-empty"}]
$data = json_decode(str_replace('"title":""', '"title":"untitled"', $data), true);
Как однострочник:
$data = json_decode(str_replace('"title":""', '"title":"untitled"', json_encode($data)), true);
Выход:
Array
(
[0] => Array
(
[title] => untitled
[body] => empty
)
[1] => Array
(
[title] => set
[body] => not-empty
)
)
Я не уверен, что это более эффективно (я сомневаюсь в этом, но вы можете проверить это), но, по крайней мере, это другой способ сделать то же самое и должен работать нормально - вам нужно заботиться о многомерных массивах если вы используете индекс title
в другом месте мысли