【发布时间】:2016-05-14 16:53:37
【问题描述】:
我正在寻找以下 Python 代码在 PHP 中的等价物:
d = {a*2:a*3 for a in range(5)}
这是一个丑陋的单行解决方案:
$d = array_combine(array_map(function ($x) {return $x*2;}, range(0,4)), array_map(function ($x) {return $x*3;}, range(0,4)));
这是一个使用循环的更具可读性的解决方案:(
$d = [];
foreach(range(0,4) as $x) {
$d[$x*2] = $x*3;
}
在 PHP 中有没有更简单更好的方法来做到这一点?
【问题讨论】:
-
foreach是您案例中最简单的解决方案 -
python 代码也使用循环.."使用循环:("..
for a in range(5)这是一个循环.. -
@ern 你说得对——我想我在想别的东西——例如在python中使用join而不是在for循环中连接字符串更好的方式(即占用更少的资源)。我也有这样的印象,列表/字典理解在计算上更可取。但我不知道它是如何与 php 中的数组一起工作的,所以也许它与循环而不是像 array_map 这样的东西一样有效。