0

配列に10人のユーザーがいます:

$array = array(
    "aaa",
    "bbb",
    "ccc",
    "ddd",
    "eee",
    "fff",
    "ggg",
    "hhh",
    "iii",
    "jjj",
);

そして、5人以下のユーザーに基づいたリストを表示したいと思います。例:

<ul>
    <li>
        <ul>
            <li>aaa</li>
            <li>bbb</li>
            <li>ccc</li>
            <li>ddd</li>
            <li>eee</li>
        </ul>
    </li>
    <li>
        <ul>
            <li>fff</li>
            <li>ggg</li>
            <li>hhh</li>
            <li>iii</li>
            <li>jjj</li>
        </ul>
    </li>
</ul>   

現時点で私は持っています:

<ul>
<?php foreach($users as $user): ?>
    <li><?php echo $user ?></li>
<?php endforeach; ?>
</ul>

しかし、私は内側のulを作成していません。これに取り組むための最良の方法は何ですか?forループを使用して5をカウントしますか?それとも、よりきちんとした方法がありますか?

4

3 に答える 3

2

array_chunk()配列を、指定された数の項目を持つ複数の配列に分割するために使用します。

<ul>
<?php
$users = array_chunk($array, 5);
foreach ($users as $user) {
    echo "<li><ul>";
    foreach ($user as $idv) {
        echo "<li>" . $idv . "</li>";
    }
    echo "</ul></li>";
}
?>
</ul>
于 2013-03-01T16:15:58.160 に答える
0

代替ソリューションを見てください:)

<li>
 <ul>
     <?php
        echo '<li>'.join('</li><li>',array_slice($array,0,5)).'</li>';
    ?>
 </ul>
</li>

<li>
 <ul>
   <?php
       echo '<li>'.join('</li><li>',array_slice($array,5,10)).'</li>';
  ?>
</ul>
</li>
于 2013-03-01T16:23:21.763 に答える
0
<ul>
<?php 
$lenght = count($users);
for( $i=0; $i<$lenght; $i++ ){
if( $i%5 == 0 ){ 
   echo '<li><ul>';
}
echo '<li>'.$users[0].'</li>';
if( $i%5 == 4 || ($i+1==$lenght) ){ 
    echo '</ul></li>';
}
}?>
</ul>
于 2013-03-01T16:41:07.023 に答える