我有多种方法可以做到这一点。我有一个看起来像这样的数组:
$map=array(
'ABC'=>'first_three',
'DEF'=>'second_three',
'GHI'=>'third_three'
)
$info=array(
array('x','XXABCXXXX','x','x','x'),
array('x','XXXDEFXXXX','x','x','x'),
array('x','XXXXXXXXXX','x','x','x'),
array('x','XXXXXXXABC','x','x','x'),
array('x','XXXXXXXXXX','x','x','x')
)
我想进行查找/替换,以便将数组中的第二个字符串与$ map中的键进行比较,如果找到任何键,则他们将使用$ map中的任何内容替换该键。
array('x','XXfirst_threeXXXX','x','x','x')
我想循环浏览$ info:
foreach ($info as $i){
[something with $i[1] and $map]
}
最有效的方法是什么?它是否使用" in_array"?
答案 0 :(得分:1)
需要$i
引用&
以这种方式使用:
foreach ($info as &$i){
$i[1] = str_replace(array_keys($map), $map, $i[1]);
}
答案 1 :(得分:0)
foreach($info as $key => $i) {
foreach($map as $k => $v) {
// replace the key $k ("ABC") with the value $v ("first_three") in the 2nd element of $info, for each $key
$info[$key][1] = str_replace($k, $v, $info[$key][1]);
}
}