2014-10-08 82 views
0

我在陣列形式的數據:轉換陣列的形式在PHP

0 => a, 
1 => b, 
2 => c, 
3 => d, 
4 => e, 
5 => f, 
6 => g 

我怎樣才能將這些陣列爲以下嗎?

0 => array(0 => a, 1 => b), 
1 => array(0 => c, 1 => d), 
2 => array(0 => e, 1 => f), 
3 => array(0 => g, 1 => null) 

回答

0

Live DEMO

考慮以下代碼:

$j = 0; 
for($i=0; $i< count($arr); $i++){ 
    if(($i !=0) && (($i % 2) == 0)){ 
     $j++; 
    } 
    $newArray[$j][] = $arr[$i]; 
} 

$lastElement = count($newArray) -1; 
if(count($newArray[$lastElement]) < 2){ 
    $newArray[$lastElement][]= null; 
} 

echo "<pre>"; 
print_r($newArray); 

輸出:

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

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

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

    [3] => Array 
     (
      [0] => g 
      [1] => 
     ) 

) 
+0

感謝很多。有效。 – 2014-10-08 05:59:47

+0

@skonmai它確定 – Manwal 2014-10-08 06:43:34

2

用戶array_chunk()功能分割的陣列成塊,和2 第二 PARAM塊大小

array_chunk($arr, 2); 
+0

Superb在更短的時間 – Manwal 2014-10-08 05:29:51

1

組塊不會給null的要求的情況下,如果元件的數目是整除。

$by = 2; 
$arr = range('a', 'g'); 
$arr = array_merge($arr, count($arr) % $by ? 
     array_fill(0, $by - count($arr) % $by, null) : array()); 
var_dump(array_chunk($arr, $by));