> 백엔드 개발 > PHP 튜토리얼 > foreach只执行一次

foreach只执行一次

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-06 20:40:49
원래의
2363명이 탐색했습니다.

问题是为什么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>
로그인 후 복사
로그인 후 복사
관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿