PHP 相当于 Python 的 enumerate()?

2022-08-30 22:50:45

在Python中,我可以写:

for i, val in enumerate(lst):
    print i, val

我知道如何在PHP中做到这一点的唯一方法是:

for($i = 0; $i < count(lst); $i++){
    echo "$i $val\n";
}

PHP中有更清晰的方法吗?


答案 1

不要相信PHP数组,它们就像Python字典。如果你想要安全的代码,请考虑以下情况:

<?php
$lst = array('a', 'b', 'c');

// Removed a value to prove that keys are preserved
unset($lst[1]);

// So this wont work
foreach ($lst as $i => $val) {
        echo "$i $val \n";
}

echo "\n";

// Use array_values to reset the keys instead
foreach (array_values($lst) as $i => $val) {
        echo "$i $val \n";
}
?>

-

0 a 
2 c 

0 a 
1 c 

答案 2

使用前置

foreach ($lst as $i => $val) {
    echo $i, $val;
}

推荐