我有一个多维数组.我需要搜索特定范围的值,编辑这些值并返回编辑后的数据.
示例数组:
array(3) { ["first"]=> array(1) { [0]=> string(4) "baz1" } ["second"]=> array(1) { [0]=> string(4) "foo1" } ["third"]=> array(1) { [0]=> string(4) "foo2" }
现在我想找到与foo匹配的任何值(示例数组中的foo1和foo2),在其中插入"-bar"(foo-bar1,foo-bar2)并返回该值.有什么方法可以解决这个问题?
编辑我应该提到foo实际上可能是whatfoo(例如examplefoo1,somethingelsefoo2,blahblahfoo3).我认为这排除了str_replace.
如果您的阵列不会非常深,这可以工作.($ array是您想要在以后替换的内容)
$array= array('first' => array('bazi1'), 'second' => array('foo1'), 'third' => array('foo2') ); function modify_foo(&$item, $key) { $item = str_replace('foo', 'foo-bar', $item); } array_walk_recursive( $array, 'modify_foo' );
如果你想要foo甚至在somethingelsefoo2中被替换,那么str_replace就可以了.
这样的事情怎么样:
function addDashBar($arr) { foreach ($arr as $key => $value) { if (is_array($value)) $arr[$key] = addDashBar($value) else { $arr[$key] = str_replace($value, "foo", "foo-bar"); } } return $arr; }