替换数组PHP中的一个单词

时间:2019-06-19 12:22:39

标签: php arrays

我有这种数组:

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
)

没有任何效果。那么我该如何替换一个单词?

2 个答案:

答案 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) : '';
});