【问题标题】:Getting first 3 values of an array in PHP在 PHP 中获取数组的前 3 个值
【发布时间】:2012-07-26 02:31:55
【问题描述】:

假设我有一个看起来像这样的数组

array ([apple] => 1, [dog]=>2, [cat]=>5, [bread]=>9, [shoes]=> 4)

我可以打印数组的前 3 个值吗?如果是这样,怎么做?有什么想法吗?

【问题讨论】:

    标签: php arrays


    【解决方案1】:
    $firstThreeElements = array_slice($array, 0, 3);
    

    其中 0 是您的偏移量,3 是您想要的元素数量。

    【讨论】:

    • @Ben,为什么不呢?肯定他遇到的困难是获取数组的前三个元素而不是打印它们吗?
    【解决方案2】:

    有很多方法。

    list( $first, $second, $third) = $array;
    echo $first . ' ' . $second . ' ' . $third;
    

    或者:

    echo array_shift( $array);
    echo array_shift( $array);
    echo array_shift( $array);
    

    或者:

    $i = 0;
    foreach( $array as $el) {
        if( $i >= 3) break;
        echo $el;
        $i++;
    }
    

    或者:

    foreach( array_slice( $array, 0, 3) as $el) {
        echo $el;
    }
    

    或者:

    echo implode( ' ', array_slice( $array, 0, 3));
    

    【讨论】:

    • 无需手动索引计数...foreach( $array as $i=>$el)
    • @Ben - $i 将包含密钥,这是一个关联数组。
    • 使用array_slice 的解决方案可能是最紧凑且面向未来的解决方案。随着需求的变化,listarray_shift 会变得越来越冗长,而当涉及到计数器时,foreach 总是很难看。
    【解决方案3】:

    使用迭代器:

    $array = ['apple' => 1, 'dog' => 2, 'cat' => 5, 'bread' => 9, 'shoes' => 4];
    
    foreach (new LimitIterator(new ArrayIterator($array), 0, 3) as $key => $val)
    {
      echo "$key => $val\n";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 2021-09-26
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      相关资源
      最近更新 更多