PHP equivalent to Python's enumerate()?

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?

12
задан davidscolgan 24 August 2010 в 20:29
поделиться

3 ответа

Не доверяйте массивам 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 
26
ответ дан 2 December 2019 в 03:53
поделиться

Используйте foreach :

foreach ($lst as $i => $val) {
    echo $i, $val;
}
11
ответ дан 2 December 2019 в 03:53
поделиться

Да, вы можете использовать цикл foreach PHP:

 foreach($lst as $i => $val)
       echo $i.$val;
1
ответ дан 2 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: