php for循环的坑,千万不要在判断条件中使用count

引用php manual 中的例子:

<?php
/*
 * This is an array with some data we want to modify
 * when running through the for loop.
 */
$people = array(
    array(
'name' => 'Kalle''salt' => 856412),
    array(
'name' => 'Pierre''salt' => 215863)
);

for(
$i 0$i count($people); ++$i) {
    
$people[$i]['salt'] = mt_rand(000000999999);
}
?>

上面这段代码中,每次循环都得计算count,很显然这个会非常影响速度,所以最好将count放到循环外部。

<?php
$people 
= array(
    array(
'name' => 'Kalle''salt' => 856412),
    array(
'name' => 'Pierre''salt' => 215863)
);

for(
$i 0$size count($people); $i $size; ++$i) {
    
$people[$i]['salt'] = mt_rand(000000999999);
}
?>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP,可以使用foreach循环或for循环来遍历数组,并在遍历过程查找区间数据。以下是一个基于foreach循环的示例代码: ```php $data = array( array('name' => 'Alice', 'score' => 85), array('name' => 'Bob', 'score' => 70), array('name' => 'Charlie', 'score' => 92), array('name' => 'David', 'score' => 60), array('name' => 'Eve', 'score' => 78) ); $min_score = 80; $max_score = 90; foreach ($data as $row) { if ($row['score'] >= $min_score && $row['score'] <= $max_score) { echo $row['name'] . '的分数是' . $row['score'] . '<br>'; } } ``` 在以上示例,我们定义了一个二维数组$data,其每个元素包含一个名字和一个分数。接着,我们定义了两个变量$min_score和$max_score,代表分数的区间范围。接下来,我们使用foreach循环遍历数组$data,对于每个元素,判断其分数是否在指定的区间范围内,如果是,则输出该元素的名字和分数。 除了使用foreach循环,也可以使用for循环来遍历数组。以下是一个基于for循环的示例代码: ```php $data = array( array('name' => 'Alice', 'score' => 85), array('name' => 'Bob', 'score' => 70), array('name' => 'Charlie', 'score' => 92), array('name' => 'David', 'score' => 60), array('name' => 'Eve', 'score' => 78) ); $min_score = 80; $max_score = 90; for ($i = 0; $i < count($data); $i++) { if ($data[$i]['score'] >= $min_score && $data[$i]['score'] <= $max_score) { echo $data[$i]['name'] . '的分数是' . $data[$i]['score'] . '<br>'; } } ``` 以上示例,我们使用for循环遍历数组$data,对于每个元素,判断其分数是否在指定的区间范围内,如果是,则输出该元素的名字和分数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值