欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-24 21:42:22
...
PHP中使用foreach控制数组的扫描
    
foreach ($c_f_arr as &$c_f) {
if (trim($c_f[0])==trim($char)) {
echo "$char is exist
";
$c_f[1]++;

echo "hahaha
";
echo "this is cf: $c_f[1]
";
}
else {
echo "$char is not exist
";
$c_new=array(trim($char),'1');
array_push($c_f_arr, $c_new);
$n++;
}
}

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

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

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

$arr = array(array('a',0),array('b',0),array('c',0));
$char = 'a';
$is_exists = 0;
for($i=0,$len=count($arr); $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跳出循环
PHP中使用foreach统制数组的扫描

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频