我有这种数组:
select (select count(*) from foo) as c1, (select count(*) from bar) as c2
我需要替换数组中的一个单词-我的合同,以替换其他内容。
我的合同将一直存在,但是顺序可能会更改,因此我必须检查确切的名称并替换它。
我通过 str_replace($ value,$ replacement,$ array);
也通过
Array
(
[0] => Array
(
[title] => Personal
[closeable] => 1
[visible] => 1
)
[1] => Array
(
[title] => My contracts
[closeable] => 1
[visible] => 1
)
[2] => Array
(
[title] => Info
[closeable] => 1
[visible] => 1
)
)
);
最后:
$ar = array_replace($ar,
array_fill_keys(
array_keys($ar, $value),
$replacement
)
没有任何效果。那么我该如何替换一个单词?
答案 0 :(得分:3)
foreach ($ar as &$item) {
if ($item['title'] === 'My contracts') {
$item['title'] = 'Some new value';
// if you're sure that record will be met ONCE
// you can add `break;` to stop looping
}
}
答案 1 :(得分:1)
如果您想使用array_walk
,则可以采用
$stringToFind = 'My contracts';
$stringToReplace = 'REPLACMENT';
array_walk($arr, function(&$v,$k) use ($stringToFind,$stringToReplace){
($v['title'] == $stringToFind) ? ($v['title'] = $stringToReplace) : '';
});