【问题标题】:The best way for get range of array获取数组范围的最佳方法
【发布时间】:2012-07-06 15:19:58
【问题描述】:

我有一个数组,例如有 9 个键:

<?php

$array = array(3,1,4,5,7,34,32,12,13);

print_r($array);

我想从此数组中获取数据或删除其他值。

例如:

$first = 2;
$last = 5;

这应该返回我:

$new_array = array(1,4,5,7);

最好的方法是什么?

【问题讨论】:

  • 您能更具体地说明您要查找的内容吗?过滤数组的标准方法也是使用array_filter 函数。

标签: php


【解决方案1】:

您可以为此使用函数array_slice

$sub_array = array_slice($array, $first - 1, count($array) - $last);

【讨论】:

    【解决方案2】:

    【讨论】:

    • 您可能会在这个名义上正确的答案上多投入一点。
    • w3schools 有很好的参考。 http://w3schools.com/php/func_array_slice.asp
    • ...当 php.net 上的实际文档更可能是完整和准确的时候,为什么还要查看 w3schools 上的参考资料?答案不需要另一个链接,尤其是像 w3schools 这样臭名昭著的不可靠网站。
    【解决方案3】:

    试试array_splice:

    $array = array(3,1,4,5,7,34,32,12,13);
    $first = 2;
    $end = 5;
    $length = ($end - $first);
    $new_array = array_splice($array, $first, $end)
    

    【讨论】:

      【解决方案4】:

      听起来你要使用的是array_slice()函数:

      <?php
      $input = array("a", "b", "c", "d", "e");
      
      $output = array_slice($input, 2);      // returns "c", "d", and "e"
      $output = array_slice($input, -2, 1);  // returns "d"
      $output = array_slice($input, 0, 3);   // returns "a", "b", and "c"
      
      // note the differences in the array keys
      print_r(array_slice($input, 2, -1));
      print_r(array_slice($input, 2, -1, true));
      ?> 
      

      关于你的问题:

      <?php
      
      $array = array(3,1,4,5,7,34,32,12,13);
      
      $first = 2;
      $last = 5;
      
      $new_array = array_slice($array, $first - 1, $last - 1);
      print_r($new_array);
      // Array ( [0] => 1 [1] => 4 [2] => 5 [3] => 7 ) 
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 2017-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多