2014-10-08 10 views

ответ

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

спасибо лотов. Это сработало. –

+0

@ skonmai его нормально – Manwal

2

пользователя array_chunk() функции разделить массив на куски, и 2-й размера порции паров

array_chunk($arr, 2); 
+0

Superb за меньшее время – Manwal

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)); 
Смежные вопросы