首頁 >後端開發 >php教程 >foreach只执行一次

foreach只执行一次

WBOY
WBOY原創
2016-06-06 20:40:492310瀏覽

问题是为什么foreach每次只执行一次。
一批数据处理的话,第一个正确会正常处理。后面就不动了。

需要执行:
将下面数据中的某一个数据$one转到$two。
左边删除$one.右边没有$two则新增,有则不增加。

staff_departmentid的数据结构例如:
7-8-9-6
6-7-9
8-9-10-6
8-9

<code>            $one=I('post.one');
            $two=I('post.two');

            $m=M('staff');
            //第一步 先查找左边准备要修改的值
            $conone['staff_departmentid']=array('like',"%".$one."%");
            $list=$m->where($conone)->select();

            foreach ($list as $key => $value) {

                $arr=explode('-',$value['staff_departmentid']);
                $array_key = array_search($one,$arr);
                unset($arr[$array_key]);
                //重新设计索引
                $arr=array_values($arr);
                $nowstr=implode('-',$arr);
                //首先减去$one值
                $w1['staff_id']=$value['staff_id'];
                $data['staff_departmentid']=$nowstr;
                $jian=$m->where($w1)->save($data);

                //如果已有$two值则不增加。没有则新增
                $array2_key = array_search($two,$arr);

                if($array2_key||$array2_key===0){
                    //有就不添加
                }else{
                    //没有我们就添加一个试试
                    $arr[]=$two;
                    $arr=array_values($arr);
                    $addstr=implode('-',$arr);

                    $adddata['staff_departmentid']=$addstr;

                    $w2['staff_id']=$value['staff_id'];
                    $jia=$m->where($w2)->save($adddata);
                }
            }
</code>

回复内容:

问题是为什么foreach每次只执行一次。
一批数据处理的话,第一个正确会正常处理。后面就不动了。

需要执行:
将下面数据中的某一个数据$one转到$two。
左边删除$one.右边没有$two则新增,有则不增加。

staff_departmentid的数据结构例如:
7-8-9-6
6-7-9
8-9-10-6
8-9

<code>            $one=I('post.one');
            $two=I('post.two');

            $m=M('staff');
            //第一步 先查找左边准备要修改的值
            $conone['staff_departmentid']=array('like',"%".$one."%");
            $list=$m->where($conone)->select();

            foreach ($list as $key => $value) {

                $arr=explode('-',$value['staff_departmentid']);
                $array_key = array_search($one,$arr);
                unset($arr[$array_key]);
                //重新设计索引
                $arr=array_values($arr);
                $nowstr=implode('-',$arr);
                //首先减去$one值
                $w1['staff_id']=$value['staff_id'];
                $data['staff_departmentid']=$nowstr;
                $jian=$m->where($w1)->save($data);

                //如果已有$two值则不增加。没有则新增
                $array2_key = array_search($two,$arr);

                if($array2_key||$array2_key===0){
                    //有就不添加
                }else{
                    //没有我们就添加一个试试
                    $arr[]=$two;
                    $arr=array_values($arr);
                    $addstr=implode('-',$arr);

                    $adddata['staff_departmentid']=$addstr;

                    $w2['staff_id']=$value['staff_id'];
                    $jia=$m->where($w2)->save($adddata);
                }
            }
</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn