显示数组的前十个值

时间:2013-11-27 00:10:50

标签: php arrays foreach count

我正在尝试将数组中的前10个项目显示为列表项,然后编写一些逻辑,其中包含一个按钮以将其余数组项显示为列表。在此先感谢您的帮助!

这是我到目前为止所拥有的     

if (count($all_machines) > 10) {
    echo '<ul>';
    foreach($all_machines as $machine) {
        echo '<li>' . $machine['name'] . '</li>';
    }

    echo '</ul>';
} else {
    echo "No machines";
}

2 个答案:

答案 0 :(得分:2)

使用foreach您将遍历数组中的所有项目,我建议您在此处使用for

if (count($all_machines) > 10) {
    echo '<ul>';
    for ($i=0; $i<10; $i++) {
        echo '<li>'.$all_machines[$i]['name'].'</li>';
    }
    echo '</ul>';
}

如果你想要访问其他值,也可以这样做

$count = count($all_machines);
if ($count > 10) {
    echo '<ul>';
    for ($i=0; $i<10; $i++) {//first 10 elements
        echo '<li>'.$all_machines[$i]['name'].'</li>';
    }
    echo '</ul>';
    for ($i=10; $i<$count; $i++) {//all other elements
        //do something with $all_machines[$i]
    }
}

答案 1 :(得分:2)

您可以使用 array_slice() 获取数组中的前10个元素,这样您仍然可以使用foreach

// number of items to display
$display_threshold = 10;

if (count($all_machines) > $display_threshold) {
    echo '<ul>';

    foreach(array_slice($all_machines, 0, $display_threshold) as $machine)
        echo '<li>' . $machine['name'] . '</li>';

    echo '</ul>';
} else {
    echo 'No machines';
}