php foreach 问题 key判断无效

        foreach ( $list as $key => $val ) {
          if($key == 5){
            $tad = "123";
          }
        }

限定了$key == 5才显示$tad,但实际前端每个key都会显示$tad

这是为什么

图片说明
你看下你是想要这样的结果嘛

你是不是操作的都是同一个对象,也就是你列表元素是浅拷贝

当$key == 5 时会赋值 $tad='123';
所有输出时候都会有
建议
foreach ( $list as $key => $val ) {
if($key == 5){
$val['tad'] = "123";
}else{
$val['tad'] = '';
}
}
这样前端 输出 $val['tad'] 即可

    foreach ( $list as $key => $val ) {
            if($key == 5){
                $tad = "123";
            }
        }

这样写的时候 只要key中存在5,最终$tad必然为123

当$key == 5 时会赋值 $tad='123';
$arr = array();
foreach ( $list as $key => $val ) {
if($key == 5){
$arr['tad'] = "123";
}else{
$arr['tad'] = $key.'不等于5';
}
}
print_r($arr);exit;
这样可能看的更加直观一些希望采纳求币下个东西