PHP中使用foreach统制数组的扫描

WBOY
풀어 주다: 2016-06-13 11:53:03
원래의
1047명이 탐색했습니다.

PHP中使用foreach控制数组的扫描

    <br />foreach ($c_f_arr as &$c_f) {  <br />                    if (trim($c_f[0])==trim($char)) {  <br />                        echo "$char is exist <br>";  <br />                        $c_f[1]++;  <br />                          <br />                        echo "hahaha <br>";  <br />                        echo "this is cf: $c_f[1] <br>";  <br />                    }  <br />                    else {  <br />                        echo "$char is not exist <br>";  <br />                        $c_new=array(trim($char),'1');  <br />                        array_push($c_f_arr, $c_new);  <br />                        $n++;  <br />                    }  <br />                }   <br />
로그인 후 복사

实现的结果总是出现插入值之后,foreach就从头开始扫数组了,然后就会插入好几次。。。foreach是有这个规定吗?怎么破?还在考虑。。。
------解决方案--------------------
foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

你的写法逻辑有问题,必须循环完成才能判断是否存在

你应该是想,当数组有相同的值,count增加,如果数组中没有这个值,则增加这个值。
可以这样写:
<br /><?php<br />$arr = array(array('a',0),array('b',0),array('c',0));<br />$char = 'a';<br />$is_exists = 0;<br />for($i=0,$len=count($arr); $i<$len; $i++){<br />    if($arr[$i][0] == $char){<br />        $arr[$i][1]++;<br />        $is_exists = 1;<br />        break;<br />    }<br />}<br /><br />if($is_exists==0){<br />    array_push($arr, array($char,0));<br />}<br /><br />print_r($arr);<br />?><br />
로그인 후 복사


------解决方案--------------------
foreach用break跳出循环

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