指导我优化我的PHP代码,用数组中的空数据填充缺失值
16lz
2021-01-22
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;
}
}
更多相关文章
- 为什么foreach在循环中不修改数组时要复制数组?(复制)
- 如何将项添加到json文件格式化数组
- [php]在PHP中读取和写入WORD文档的代码
- 从数组php获得第一个非空值。
- 迭代XML元素并将元素推送到数组中
- 学习成绩统计-【数组操作】
- PHP内爆不适用于大数组?
- php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑
- advertising.php源代码分析