I have the array like

我有像这样的数组

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,
           )
)

I am getting the output like

我得到的输出就像

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

Please help me to optimize the code

请帮我优化代码

My code :

我的代码:

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

1 个解决方案

#1


1

<?php
for($i=1; $i<=3; $i++)
{
    for($j=1; $j<=3; $j++)
    {
        $newData = null;

        // Avoid multiple calls to $rows[$i] because on each time it must browse the array,
        // use foreach instead. Pass by reference avoids copy of current row
        foreach($rows as & $iRow)
        {
            if($iRow['b'] == 'C'.$i && $iRow['c'] == 'D'.$j)
            {
                // Copy row bvecause it is the same structure
                $newData = $iRow;

                // No need to continue the $rows loop
                break;
            }
        }

        // If no results found
        if ($newData == null)
        {
            $newData = array(
                'a'     => '',
                'b'     => 'D'.$j,
                'c'     => 'C'.$i
                );
        }

        // Auto increment index
        $data[] = $newData;
    }
}

更多相关文章

  1. 为什么foreach在循环中不修改数组时要复制数组?(复制)
  2. 如何将项添加到json文件格式化数组
  3. [php]在PHP中读取和写入WORD文档的代码
  4. 从数组php获得第一个非空值。
  5. 迭代XML元素并将元素推送到数组中
  6. 学习成绩统计-【数组操作】
  7. PHP内爆不适用于大数组?
  8. php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑
  9. advertising.php源代码分析

随机推荐

  1. 在Android程序代码中实现软件安装和卸载
  2. import小伙伴项目后 关于修改gradle插件
  3. Android(安卓)JetPack-ViewModel初见
  4. (三) 搭建cocos2d-x-android环境 Windows
  5. 新版Eclipse中关联查看Android(安卓)源代
  6. Android(安卓)MediaPlayer与Http Proxy结
  7. Android(安卓)10 适配攻略
  8. Android天气预报程序(八)
  9. Android(安卓)动画各种实现,包括帧动画、
  10. android 常用adb 和 adb shell 命令