问题描述
我有两个表“feetypes”和“Feeddetails”如下
MysqL> select * from feetypes;
+------------+----------------+---------------+-----------+----------+
| iFeeTypeId | vFeeColumnName | vColumnHeader | iPriority | edisplay |
+------------+----------------+---------------+-----------+----------+
| 1 | iBatchYear | Year | 5 | 0 |
| 2 | dTutionFee | Tution Fee | 4 | 0 |
| 3 | dCautionMoney | Caution Money | 1 | 0 |
| 4 | dOtherFee | Other Fee | 3 | 0 |
| 5 | dMyNewFee | My New Fee | 2 | 0 |
+------------+----------------+---------------+-----------+----------+
5 rows in set (0.00 sec)
MysqL> select * from Feedetails;
+---------------+------------+-----------+------------+------------+---------------+-----------+-----------+----------+---------------------+---------------------+
| iFeedetailsId | iSiteConId | iCourseId | iBatchYear | dTutionFee | dCautionMoney | dOtherFee | dMyNewFee | eDeleted | dCreatedDate | dUpdatedDate |
+---------------+------------+-----------+------------+------------+---------------+-----------+-----------+----------+---------------------+---------------------+
| 1 | 1 | 1 | 2021 | 1000.00 | 2000.00 | 3000.00 | 0.00 | 0 | 2021-02-18 03:49:18 | 2021-02-18 03:49:18 |
| 2 | 1 | 1 | 2022 | 2000.00 | 2000.00 | 2000.00 | 2000.00 | 0 | 2021-02-18 03:49:18 | 2021-02-18 03:49:18 |
+---------------+------------+-----------+------------+------------+---------------+-----------+-----------+----------+---------------------+---------------------+
2 rows in set (0.00 sec)
在这里,我正在检查带有“Feedetails”表属性(如 dTutionFee、dCautionMoney、dOtherFee、dMyNewFee 等)的“feetypes”表 vFeeColumnName 属性,如果找到匹配项,则应该进行处理,最后我想创建一个数组,但是我得到错误的数组结果...
我想要这样的结果:
array(size=2)
0 =>
array(size=5)
'dCautionMoney' => string '2000.00' (length=7)
'dMyNewFee' => string '0.00' (length=4)
'dOtherFee' => string '3000.00' (length=7)
'dTutionFee' => string '1000.00' (length=7)
'iBatchYear' => string '2021' (length=4)
1 =>
array(size=5)
'dCautionMoney' => string '2000.00' (length=7)
'dMyNewFee' => string '2000.00' (length=7)
'dOtherFee' => string '2000.00' (length=7)
'dTutionFee' => string '2000.00' (length=7)
'iBatchYear' => string '2022' (length=4)
但我得到这样的结果:
array (size=2)
0 =>
array (size=6)
0 =>
array (size=0)
empty
'dCautionMoney' => string '2000.00' (length=7)
'dMyNewFee' => string '0.00' (length=4)
'dOtherFee' => string '3000.00' (length=7)
'dTutionFee' => string '1000.00' (length=7)
'iBatchYear' => string '2021' (length=4)
1 =>
array (size=7)
0 =>
array (size=0)
empty
'dCautionMoney' => string '2000.00' (length=7)
'dMyNewFee' => string '2000.00' (length=7)
'dOtherFee' => string '2000.00' (length=7)
'dTutionFee' => string '2000.00' (length=7)
'iBatchYear' => string '2022' (length=4)
1 =>
array (size=0)
empty
我的代码是:
//get varIoUs fee types start
$queryFeeTypes = "SELECT * FROM feetypes WHERE edisplay = '0' ORDER BY iPriority ";
$exeFeeTypes = $pdo->query($queryFeeTypes);
$resultFeeTypes = $exeFeeTypes->fetchAll(PDO::FETCH_ASSOC);
//get varIoUs fee types end
//get varIoUs column name start
$queryDesFeedetails = "DESCRIBE Feedetails";
$exeDescFeedetails = $pdo->query($queryDesFeedetails);
$resultDescFeedetails = $exeDescFeedetails->fetchAll(PDO::FETCH_ASSOC);
//get varIoUs column name end
//get fee details start
$queryFeedetails = "SELECT * FROM Feedetails WHERE eDeleted = '0'";
$exeFeedetails = $pdo->query($queryFeedetails);
$resultFeedetails = $exeFeedetails->fetchAll(PDO::FETCH_ASSOC);
//get fee details end
$data = array();
foreach($resultFeedetails as $newData) {
$newArrayData[] = array();
foreach($resultFeeTypes as $row){
foreach($resultDescFeedetails as $rowNew){
$header = $rowNew['Field'];
if($row['vFeeColumnName'] == $rowNew['Field']){
$newArrayData = array_push_assoc($newArrayData,$header,$newData[$header]);
}
}
}
array_push($data,$newArrayData);
}
function array_push_assoc($array,$key,$value){
$array[$key] = $value;
return $array;
}
var_dump($data);
?>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)