doupang1917
2016-06-24 22:17
浏览 30
已采纳

在PHP中,如何使用偏移量迭代数组?

array(
(int) 0 => '3',
(int) 1 => '5',
(int) 2 => '9',
(int) 3 => '14',
(int) 4 => '16',
(int) 5 => '17',
(int) 6 => '18',
(int) 7 => '19',
(int) 8 => '20',
(int) 9 => '23',
(int) 10 => '24',
(int) 11 => '25',
(int) 12 => '26',
(int) 13 => '28',
(int) 14 => '30',
(int) 15 => '31',
(int) 16 => '32',
(int) 17 => '33',
(int) 18 => '34',
(int) 19 => '35',
(int) 20 => '36',
(int) 21 => '37',
(int) 22 => '38',
(int) 23 => '39',
(int) 24 => '40',
(int) 25 => '41')

I have an array of numbers that I would like to iterate though via AJAX. lets say I wanted to show the first 5, then have an offset of 5.

how do I go through the array such that the first time i need it I am given [3,5,9,14,16], and then the second time [17,18,19,20,23], etc. etc.

I am thinking i would need a function that is fed the original array?

something like

function Something($array, $offset){ 

} 

图片转代码服务由CSDN问答提供 功能建议

  array(
(int)0 =>'3',
(int)1  =>'5',
(int)2 =>'9',
(int)3 =>'14',
(int)4 =>'16',
(int  )5 =>'17',
(int)6 =>'18',
(int)7 =>'19',
(int)8 => '20',
  (int)9 =>'23',
(int)10 =>'24',
(int)11 =>'25',
(int)12 =>'26',  
(int)13 =>'28',
(int)14 => '30',
(int)15 =>'31',
(int)16 => '32  ',
(int)17 =>'33',
(int)18 =>'34',
(int)19 => '35',
(int)20 =>  '36',
(int)21 => '37',
(int)22 =>'38',
(int)23 => '39',
(int)24 =  >'40',
(int)25 =>'41')
   
 
 

我有一个数字数组,我想迭代通过 AJAX。 lets说我想显示前5个,然后偏移量为5.

如何通过数组,这样我第一次需要它时,我得到了[ 3,5,9,14,16],然后第二次[17,18,19,20,23]等等。

我在想我需要一个 喂养的功能 他原来的数组?

类似

  function Something($ array,$ offset){
 
} 
   
 
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • duanchi4184 2016-06-24 22:26
    已采纳

    You could use array_slice() to extract a portion of the array:

    $offset = 5;
    $chunk_size = 5;
    
    $chunk = array_slice($array, $offset, $chunk_size);
    
    var_dump($chunk);
    

    Output:

    array(5) {
      [0]=>
      string(2) "17"
      [1]=>
      string(2) "18"
      [2]=>
      string(2) "19"
      [3]=>
      string(2) "20"
      [4]=>
      string(2) "23"
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dongquming3255 2016-06-24 22:30

    Assuming you transmit the offset with each Ajax call and that the length of your portions will always be 5, then you can use array_slice

    $array = array_slice($array, $offset, 5);
    
    foreach( $array as $k => $v )
    {
    ...
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题