2012-09-01 42 views
-2

我有一個由200-7000個值之間的任意值組成的數組。我想根據定義的值將這個數組分割成更小的塊。將數組拆分成定義值的較小部分

例如:

陣列具有1731倍的值,我要分解成與每個陣列僅具有每值較小的陣列。

這是如何完成的?我堅持的部分是將其分解爲每個50個值。

預先感謝您。

回答

5

https://www.php.net/array_chunk

array_chunk($陣列,50)返回與每個值是與從$陣列,每個50個值的數組的數組。

//make an array with numbers from 1 to 500 
$array = range(1, 500); 
//break that array up into chunks of 50. 
$newArray = array_chunk($array, 50); 
//display the new array 
var_dump($newArray); 

例如:http://codepad.viper-7.com/JNzSWO

+0

是的,我知道這是用array_chunk完成的,但我不確定如何將它分解爲每個值50個值。 – nick

+0

通過將'50'作爲函數的第二個參數。您是否閱讀過文檔?它清楚地表明瞭這一點 – meagar

+0

@nick現在有一個例子。 –

0

使用陣列塊功能:

結塊的陣列劃分成大小爲大塊。最後一個塊可能包含小於大小的元素。

用法:

array array_chunk (array $input , int $size [, bool $preserve_keys = false ]) 

例子:

輸入:

<?php 
    $input_array = array('a', 'b', 'c', 'd', 'e'); 
    print_r(array_chunk($input_array, 2)); 
    print_r(array_chunk($input_array, 2, true)); 
?> 

輸出:

Array 
(
    [0] => Array 
     (
      [0] => a 
      [1] => b 
     ) 

    [1] => Array 
     (
      [0] => c 
      [1] => d 
     ) 

    [2] => Array 
     (
      [0] => e 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [0] => a 
      [1] => b 
     ) 

    [1] => Array 
     (
      [2] => c 
      [3] => d 
     ) 

    [2] => Array 
     (
      [4] => e 
     ) 

) 

所以,如果你有一個array命名爲$a,你可以使用:

$components = array_chunk($a, 50, true); 
0

使用array_chunk()

如:

$array = range(1, 1731); 
if(count($array) => 200 || count($array) <= 7000)){ 
    $split = array_chunk($input_array, 50, true); 
} else { 
    $split = $array; 
} 
var_export($split); 

$split將有大約35陣列如果初始數組的計數器超過200,並在7000