2014-12-07 91 views
1

我有這樣用鹼陣列

$baseArray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); 

所以我想使範圍

$arrayOne = from index 5 - 10 
$arrayTwo = from index 15 - 20 

我如何拆分$ baseArray兩個數組的數組從範圍創建元素的數組在數組中像這樣的數組?

+0

您是否閱讀過任何[php.net](http://php.net)文檔? – 2014-12-07 09:03:34

+0

@ Rizier123我嘗試了array_chunk函數和array_slice但沒有結果。 – James 2014-12-07 09:04:08

+0

@Mihaiiorga我讀了,但我用的功能沒有工作 – James 2014-12-07 09:04:54

回答

0

這應該爲你工作:

(只有當你有一個索引以數字開頭的0作品)

$baseArray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); 
$arrayOne = array(); 
$arrayTwo = array(); 

foreach($baseArray as $k => $v) { 

    if($k >= 5 && $k <= 10) 
     $arrayOne[] = $v; 
    elseif($k >= 15 && $k <= 20) 
     $arrayTwo[] = $v; 

} 

print_r($arrayOne); 
print_r($arrayTwo); 

輸出:

arrayOne:

Array 
(
    [0] => 6 
    [1] => 7 
    [2] => 8 
    [3] => 9 
    [4] => 10 
    [5] => 11 
) 

arrayTwo:

Array 
(
    [0] => 16 
    [1] => 17 
    [2] => 18 
    [3] => 19 
    [4] => 20 
) 
+2

你不能依賴這個鍵,鑰匙可以是任何東西.. – 2014-12-07 09:10:28

2

有功能array_slice

$baseArray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); 
$arrayOne = array_slice($baseArray, 5, 10); 
$arrayTwo = array_slice($baseArray, 15, 20); 
0

可以嘗試使用for() & array_slice()。示例:

$baseArray = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); 
$newAr = array(); 
for($i = 5; $i < count($baseArray); $i += 10){ 
    $newAr[] = array_slice($baseArray, $i, 5); 
} 
print '<pre>'; 
print_r($newAr); 
print '</pre>';