Heim >Backend-Entwicklung >PHP-Tutorial >PHP中使用foreach控制数组的扫描

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

WBOY
WBOYOriginal
2016-06-23 13:59:56954Durchsuche

    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,我这个确实是逻辑有问题

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP识别任何类型的验证码图片Nächster Artikel:PHP快取问题