Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP中使用foreach控制数组的扫描

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

WBOY
WBOYasal
2016-06-23 13:59:56919semak imbas

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

实现的结果总是出现插入值之后,foreach就从头开始扫数组了,然后就会插入好几次。。。foreach是有这个规定吗?怎么破?还在考虑。。。


回复讨论(解决方案)

有没有高手来指导啊,本人PHP刚学了一周的菜鸟。。。。。。

foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息, 但不应用于更改集合内容以避免产生不可预知的副作用。

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

你应该是想,当数组有相同的值,count增加,如果数组中没有这个值,则增加这个值。
可以这样写:

<?php$arr = array(array('a',0),array('b',0),array('c',0));$char = 'a';$is_exists = 0;for($i=0,$len=count($arr); $i<$len; $i++){    if($arr[$i][0] == $char){        $arr[$i][1]++;        $is_exists = 1;        break;    }}if($is_exists==0){    array_push($arr, array($char,0));}print_r($arr);?>

foreach用break跳出循环

foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息, 但不应用于更改集合内容以避免产生不可预知的副作用。

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

你应该是想,当数组有相同的值,count增加,如果数组中没有这个值,则增加这个值。
可以这样写:

<?php$arr = array(array('a',0),array('b',0),array('c',0));$char = 'a';$is_exists = 0;for($i=0,$len=count($arr); $i<$len; $i++){    if($arr[$i][0] == $char){        $arr[$i][1]++;        $is_exists = 1;        break;    }}if($is_exists==0){    array_push($arr, array($char,0));}print_r($arr);?>


非常感谢!

感谢 mystery138,我这个确实是逻辑有问题

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP识别任何类型的验证码图片Artikel seterusnya:PHP快取问题