php foreach как ключ, каждые два числа в группе - PullRequest
5 голосов
/ 28 июля 2011
<?php
$data=array('1','2','3','4','5','6','7','8','9','10','11');
foreach($data as $key=> $element){
    if($key % 2 != 0){
        echo $element.'<br />';
    }
    echo '<hr />';
}
?>

php foreach как ключ, как сделать каждые два числа группой?

Я хочу вывести:

1,2
_____
3,4
_____
5,6
_____
7,8
_____
9,10
_____
11

Ответы [ 2 ]

23 голосов
/ 28 июля 2011

Посмотрите на функцию array_chunk().

В вашем случае вы использовали бы ее так:

foreach(array_chunk($data, 2) as $values) {
    echo implode(',', $values)."\n";
}

Во время последней итерации $values будет иметь только один элемент, поэтому, если вы планируете обращаться к элементам напрямую, используя их индекс, не забудьте использовать count() для проверки количества элементов массива.

7 голосов
/ 28 июля 2011

Ваш foreach () в порядке, но вы хотите напечатать каждый элемент, а не только каждый четный.Вы также не хотите горизонтальное правило каждый раз, просто каждый четный.Таким образом:

<?php
$data=array('1','2','3','4','5','6','7','8','9','10','11');
foreach($data as $key=> $element){
    echo $element;
    if($key % 2 != 0){
        echo "<br/><hr />";
    }
    else {
        echo ",";
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...