替换除一个以外的所有值

时间:2014-11-29 20:23:47

标签: php json laravel-4 preg-replace

我正在尝试替换除一个键值之外的所有数组值。我正在使用preg_replace并拥有此代码:

$posts = json_decode($post_list, true);
        foreach($posts as &$elm){
            $elm = array_map(function($i) use($s){
                return preg_replace("/(" . preg_quote($s) . ")/is", "<span style='background: #92CF18;'>$1</span>", $i);
            }, $elm);
        }

我的帖子var看起来像这样:pastebin我想不改变“slug”键的值我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我建议您不要使用标记修改json数据对象。数据与标记不同。

标记应该在渲染输出上,因此您的步骤应该是生成的标记上的jQuery / javascript。

在javascript中,您应该检查&#39; slug&#39;并尽早回归。在那之后,替换可能是微不足道的,或者至少比我之前的回答更容易:

如果我理解正确,你希望你的数组中每个记录都包含所有键,除了slug键。

我使用负向前瞻一点,然后来到这个解决方案:

(\{|,)\"(?!slug).*?\"

您可以在以下位置查看:     http://regex101.com/r/bU9bL4/1

如果这不能完全满足您的需求,请提供您想要的修改的更好描述,包括一些示例。