PHP使用数组中的空值填充缺少的值

时间:2014-02-18 08:03:19

标签: php arrays arraylist

我有像

这样的数组
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 个答案:

答案 0 :(得分:0)

  1. 选项=&gt;使用空值填充数组,然后填写您获得的值。

  2. 选项=&gt;记住你填写的哪个索引位置,然后通过排除你填写的索引来填补其余的位置。

  3. 1号更容易。

    2号有更好的表现。

    您可以使用array_fill

    或在数组中循环:

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