gpt4 book ai didi

php - 为什么这个循环会中途放弃?

转载 作者:行者123 更新时间:2023-12-03 01:38:00 26 4
gpt4 key购买 nike

$list 是一个非常大的数组,包含一系列单词,其中一些大于 5 个字符,一些更小。此循环将取消设置单词长度超过 5 个字符的所有值。

for($i = 0; $i < count($list); $i++)
{
$list[$i] = trim($list[$i]);
if(strlen($list[$i]) > 5)
{
unset($list[$i]);
}
}

但是,它在 $list 的大约一半中执行此操作并被删除,列表中仍然保留了明显长于 5 个字母的单词,但仅从大约一半开始。是什么让它退出?我应该多次运行该循环吗?

最佳答案

您每次都调用 count,并且在循环期间取消设置。在循环之前仅调用 count 一次。无论如何,这是一个很好的做法,因为它大大减少了您必须进行的函数调用的数量。

$count = count($list);
for($i = 0; $i < $count; $i++)
{
$list[$i] = trim($list[$i]);
if(strlen($list[$i]) > 5)
{
unset($list[$i]);
}
}

或者只是为了好玩,使用 array_map/array_filter:

$list = array_map('trim', $list);
$list = array_filter($list, function($s) { return strlen($s) <= 5; });

关于php - 为什么这个循环会中途放弃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7277129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com