PHP 相当于 Python 的 enumerate() 吗?
在Python中我可以写:
for i, val in enumerate(lst):
print i, val
我知道如何在PHP中做到这一点的唯一方法是:
for($i = 0; $i < count(lst); $i++){
echo "$i $val\n";
}
PHP中有更干净的方法吗?
In Python I can write:
for i, val in enumerate(lst):
print i, val
The only way I know how to do this in PHP is:
for($i = 0; $i < count(lst); $i++){
echo "$i $val\n";
}
Is there a cleaner way in PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
是的,您可以使用 PHP 的
foreach
循环:Yes, you can use
foreach
loop of PHP:我认为您正在寻找 range 函数。
一个用例可能是分页,其中(假设)您有 150 个项目,并且您希望每页显示 10 个项目,因此您有 15 个链接。因此,要创建这些链接,您可以使用:
I think you were looking for the range function.
One use case could be the pagination where (assume) you have 150 items and you want to show 10 items per page so you have 15 links. So to create those links you can use:
随着 PHP 5.3 中闭包的引入,您还可以编写以下内容:
当然,这仅在数组存储在变量中时才有效。
With the introduction of closures in PHP 5.3 you can also write the following:
Of course this only works if the array is stored in a variable.
我正在使用辅助函数:
我按如下方式使用它:
缺点可能是您必须通过 use (...) 指令传递要在循环内使用的外部变量。
I am using the helper function:
And I use it as follows:
The downside may be that you have to pass external variables that you want to use inside the loop through the use (...) directive.
不要相信 PHP 数组,它们就像 Python 字典。如果您想要安全的代码,请考虑以下内容:
-
Don't trust PHP arrays, they are like Python dicts. If you want safe code consider this:
-
使用
foreach
:Use
foreach
:在Python中,枚举有
start
参数,用于定义枚举的起始值。我在 php 中的解决方案是:
输出是:
In python enumerate has
start
argument, to define start value of enumeration.My solution for this in php is:
The output is:
如果您想要索引、键和值,相当于此 Python:
您可以在 PHP 中创建一个枚举函数来包装您的对象。它并不意味着高效(它预先迭代并收集所有内容),但它在语法上可能很方便。
用法示例:
If you want the index, key, and value, equivalent to this Python:
You can create an enumerate function in PHP that wraps your objects. It's not meant to be efficient (it pre-iterates and collects everything) but it can be syntactically convenient.
Example usage: