PHP:基本数组切片情况

时间:2018-08-17 19:35:20

标签: php arrays

我有一个包含页面名称的数组,我想用php echo列出这些名称,但不是全部。我只想要第二和第三,仅次于第一和第四...等等。

这是我的代码:

$pagename = [
    1 => 'Homepage', 
    2 => 'Categories', 
    3 => 'Textures',
    4 => 'Tutorials',
    5 => 'Login',
    6 => 'Join'
];

foreach($pagename as $list) {
    array_slice($list, 1,-1);

    echo "<h1>{$list}</h1>";
}

这给了我一个错误:

  

array_slice()期望参数1为数组,输入字符串。.

我想echo“类别”,“纹理”,“教程”,“登录”,“加入”

你能帮我吗?

2 个答案:

答案 0 :(得分:1)

只需删除此行array_slice($list, 1,-1);,它将起作用

如果需要删除任何元素或选择特定的索引,则需要操作数组。

$startIndex = 2;
$endIndex = 5;
for($i = $startIndex; $i <= $endIndex; $i++) {
    echo '<h1>';
    echo $pagename[$i];
    echo '</h1>';
}

或者,您可以像您的原始想法一样使用array_slice

foreach(array_slice($pagename, 1) as $list){
    echo '<h1>';
    echo $list;
    echo '</h1>';
}

答案 1 :(得分:0)

您可以构建所需键的数组,然后循环该操作:

foreach(array(2, 3, 4) as $key){
    echo '<h1>';
    echo $pagename[$key];
    echo '</h1>';
}

或者检查密钥:

foreach($pagename as $key => $list){
    if(in_array($key, array(2, 3, 4)) {
        echo '<h1>';
        echo $list;
        echo '</h1>';
    }
}

或者您需要循环切片的数组:

foreach(array_slice($pagename, 1, -1) as $list){
    echo '<h1>';
    echo $list;
    echo '</h1>';
}

前两个示例使您可以跳过项目并执行诸如1, 3, 5等操作……