2014-02-18 4 views
0

У меня есть массив какPHP заполнить недостающие значения с пустыми значениями в массиве

array(
    [0] => array(
       [a] => r1, 
       [b] => c1, 
       [c] => d1, 
      ), 
    [1] => array(
       [a] => r1, 
       [b] => c1, 
       [c] => d2, 
      ), 
    [2] => array(
       [a] => r1, 
       [b] => c1, 
       [c] => d3, 
      ), 
    [3] => array(
       [a] => r1, 
       [b] => c2, 
       [c] => d1, 
      ), 
    [4] => array(
       [a] => r1, 
       [b] => c2, 
       [c] => d3, 
      ), 
    [5] => array(
       [a] => r1, 
       [b] => c3, 
       [c] => d1, 
      ) 
) 

В настоящее время я получаю выход как

------------------------------------- 
| C1,D1 | C1,D2 | C1,D3 | 
------------------------------------- 
| C2,D2 | C3,D1 |  -  | 
------------------------------------- 
|  -  |  -  |  -  | 
------------------------------------- 

Но мне нужно выход должен быть отображен 3x3 матрица Как

------------------------------------- 
| C1,D1 | C1,D2 | C1,D3 | 
------------------------------------- 
|  -  | C2,D2 |  -  | 
------------------------------------- 
| C3,D1 |  -  |  -  | 
------------------------------------- 

Пожалуйста, помогите мне, чтобы заполнить недостающие значения с пустыми значениями

Мой код:

for($i=1; $i<=3; $i++){ 
    for($j=1; $j<=3; $j++){ 
    for($r=0; $r<9; $r++){ 
     if(isset($rows[$r]) && $rows[$r]['b'] == 'C'.$i && $rows[$r]['c'] == 'D'.$j) { 
     //Store data to array 
     $data[] = array(
      'a'  => $rows[$r]['a'], 
      'b'  => $rows[$r]['b'], 
      'c'  => $rows[$r]['c'] 
     ); 
     } 
    } 
    } 
} 
+1

Вы можете оставить попробовал код? – Rikesh

+0

да обязательно ... Пожалуйста, подождите –

+1

Пахнет домашней работой – Peon

ответ

0
  1. Option => Заполнить массив с пустыми значениями затем заполнить значения, которые вы получили.

  2. Опции => Помните, какие позиции указателя вы заполняете, а затем заполняете остальные, исключая заполненные.

Номер 1 проще.

Номер 2 имеет лучшую производительность.

Вы можете использовать array_fill

или сделать петлю через массив:

for($i = 0 ; $i < MAX ; $i++) 
    arr[i] = ""; // fill with whatever value you like 
+0

Могу ли я получить какой-либо образец кода здесь –

Смежные вопросы