PHP - Вывести значения массива в группу из 3 - PullRequest
0 голосов
/ 06 июня 2018

у меня есть массив;следующие

$arr = array(
    '1', 
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
);

и я хочу напечатать что-то вроде

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Мой код печатать только первые 3

for($m = 0; $m < 9; $m++){
echo "<ul>";

for($i = 0; $i <3; $i++){
    echo "<li>";
    echo $arr[$i];
    echo "</li>";
}

echo "</ul>";
}

Очень ценю это!

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Попробуйте

1002 *
0 голосов
/ 06 июня 2018

Вы можете использовать php array_chunk($arr,number of chunk)

$arr = array( '1', '2', '3', '4', '5', '6', '7', '8', '9');
    $chunkArray = array_chunk($arr,3);

    foreach ($chunkArray as $key => $value) {
        echo '<ul>';
        foreach ($value as $key1 => $value1) {
            echo '<li>'.$value1.'</li>';
        }
        echo '</ul>';

    }
0 голосов
/ 06 июня 2018

Один из вариантов - использовать modulo (%), например:

$arr = array(
    '1', 
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
);


$perGroup = 3;

for($m = 0; $m < count($arr); $m++){
    if ( $m % $perGroup === 0 ) echo "<ul>";

    echo "<li>";
    echo $arr[$m];
    echo "</li>";

    if ( $m % $perGroup === ( $perGroup - 1 ) || $m === (  count($arr) - 1 ) ) echo "</ul>";
}

Это приведет к:

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>
<ul>
  <li>4</li>
  <li>5</li>
  <li>6</li>
</ul>
<ul>
  <li>7</li>
  <li>8</li>
  <li>9</li>
</ul>
...