日期:2014-05-17  浏览次数:20443 次

这种情况FOREACH怎么用
 foreach($str as $key=>$row)
     {
   if(preg_match_all('/\b[Nn][Ss][Kk]-\w{5}/',$sn,$match)){
       $str[$key]['darfon_pn']=substr_replace($match[0][0],$row['darfon_pn'],7,2);
   }else{
   $str[$key]['darfon_pn'] = '';
   }
         }

以上代码只遍历了$match[0][0],如何才能遍历整个$match每个值

------解决方案--------------------
最初的 $str[$key]['darfon_pn'] 的内容是什么?
测试代码
$sn = 'NSK-34582 NSK-UUS89 NSK-89234';
preg_match_all('/\b[Nn][Ss][Kk]-\w{5}/',$sn,$match);
print_r($match[0]);
$str = '________';
foreach($match[0] as $v) {
  $str = substr_replace($v, $str,7,2);
  echo $str,PHP_EOL;
}
Array
(
    [0] => NSK-34582
    [1] => NSK-UUS89
    [2] => NSK-89234
)
NSK-345________
NSK-UUSNSK-345________
NSK-892NSK-UUSNSK-345________

是你期望的吗?