请问php中foreach循环中,如何修改$key值
默认如foreach($aas$key=>$value){...}这个循环每次key会加一,逐步循环,类似于for($key;$key<$long;$key++){..}...
默认如foreach($a as $key=>$value){...}
这个循环每次key会加一,逐步循环,类似于for($key;$key<$long;$key++){..}
我现在想当foreach循环的时候,下一次循环直接调到“$key=$key+10”;但是程序运行发现,这样赋值无效啊,程序仍然是按“$key++”在走。
请问如果不用for循环的,而用foreach循环,是否可以在循环中控制$key的值呢?
谢谢! 展开
这个循环每次key会加一,逐步循环,类似于for($key;$key<$long;$key++){..}
我现在想当foreach循环的时候,下一次循环直接调到“$key=$key+10”;但是程序运行发现,这样赋值无效啊,程序仍然是按“$key++”在走。
请问如果不用for循环的,而用foreach循环,是否可以在循环中控制$key的值呢?
谢谢! 展开
3个回答
展开全部
这个$key跟for循环中的$key是两个概念了
比如:
$arr = ['k1'=>'v1','k2'=>'v2','k3'=>'v3'];
//取v2的值
print_r($arr['k2']);
$arr = ['v1','v2','v3'];
//取v2的值
print_r($arr[1]);
//上面两个数组中亏野蔽,分别得到v2这个值所用的方法,有什么不同?
用foreach循环,可以得到数组中元素的key值跟value值,当然key值可以是数字销州,也可以是字符串啊
如果你想下一次循环,直接到$key=$key+10的时候,首先,如果$key是字符串,+10就会有错误
你脊谨可以:
1.循环一次,将用过的元素通过php函数array_splice()或unset()删除,剩下的可以再次循环
2.新建一个数组变量,用来你的操作
你指的控制key值是什么意思?不太明白
展开全部
foreach 语句用于循环遍历数组。
每进行一次循环,当前棚键数组元素的值就会被赋值给 value 变量(数组指针会逐一地移动) - 以此类推。
你这样芦逗还是陪和卖用for吧
每进行一次循环,当前棚键数组元素的值就会被赋值给 value 变量(数组指针会逐一地移动) - 以此类推。
你这样芦逗还是陪和卖用for吧
参考资料: http://www.w3school.com.cn/php/php_looping.asp
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个只能在foreach内添加判断语句
比如需求是键名每递增到第10个数含携就乘以2:
用foreach是:
$arr = range(1, 20);
$i = 0;
foreach ($arr as $v) {
if ($i % 10 == 0) {
$arr[$i] *= 2;
}
$i++;
}
print_r($arr);
用for循环是:
for ($i = 0; $i < 20; $i += 10) {
$arr[$i] *= 2;
}
//两个宽粗效果都慎老镇是一样的:Array ( [0] => 2 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 22 [11] => 12 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [16] => 17 [17] => 18 [18] => 19 [19] => 20 )
比如需求是键名每递增到第10个数含携就乘以2:
用foreach是:
$arr = range(1, 20);
$i = 0;
foreach ($arr as $v) {
if ($i % 10 == 0) {
$arr[$i] *= 2;
}
$i++;
}
print_r($arr);
用for循环是:
for ($i = 0; $i < 20; $i += 10) {
$arr[$i] *= 2;
}
//两个宽粗效果都慎老镇是一样的:Array ( [0] => 2 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 22 [11] => 12 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [16] => 17 [17] => 18 [18] => 19 [19] => 20 )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询