日期:2014-05-16  浏览次数:20462 次

foreach结合samrty 数据怎么不显示呢
$load_list是一个二维数组,其中的$v['user_name']有以下数据
xiaodg,
x42466,
etea,
na0617,
kimo,
留影,
vian22,
qingyu,
jiangliman,
xiaobu,
xiaobu,
hfa818,实现的结果将两个字符后面的用*代替,下面是实现*代码,
foreach($load_list as $k=>&$v){
//print_r($v);
//exit;
$temp=$v['user_name'];

//判断是否有中文
if(preg_match('/[\x81-\xfe][\x40-\xfe]/',$temp)){
  mb_internal_encoding("gbk");
}else {
  mb_internal_encoding("utf-8");
}
$len = mb_strlen($temp);
$t = '';
for($k=0; $k<$len; $k++){
  if($k>2) {
    $t .= '*';
  }else {
   $t .= mb_substr($temp, $k, 1);
  }
}
$t=&$v['user_name'];

}

这是assign赋值:
$GLOBALS['tmpl']->assign("load_list",$load_list);

然后在页面用samrty显示:
{foreach from="$load_list" item="load"}
<tr>
<td>
{$load.user_name}
</td>
</tr>

但是显示的结果是xiaodg没有了,从第二个x42466开始显示
这是结果图:


foreach

------解决方案--------------------
打印出第一个看看