【发布时间】:2020-02-19 09:26:48
【问题描述】:
我有 2 个不同的结构化数组,我需要找到匹配和不匹配的元素并在表中输出结果。我找到了匹配的元素,但我很难找到不匹配的元素。第一个数组总是比第二个数组有更多的元素。下面是 2 个数组的一些部分:
$sheetData = Array
(
[0] => Array
(
[0] => 01008039918
)
[1] => Array
(
[0] => 01008302495
)
[2] => Array
(
[0] => 01008603263
)
[3] => Array
(
[0] => 01008690496
)
[4] => Array
(
[0] => 01008985481
)
[5] => Array
(
[0] => 40020755400
)
[6] => Array
(
[0] => 40032435000
)
[7] => Array
(
[0] => 40231570009
)
[8] => Array
(
[0] => 40309872408
)
[9] => Array
(
[0] => 40311901009
)
[10] => Array
(
[0] => 40353576000
)
$found = Array
(
[0] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40594677009
[EXT_ACCOUNT_ID] => 40594677400
)
[1] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40595693002
[EXT_ACCOUNT_ID] => 40595693400
)
[2] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 01008302495
[EXT_ACCOUNT_ID] => 01008309812
)
[3] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40690651009
[EXT_ACCOUNT_ID] => 40690651404
)
[4] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40625090009
[EXT_ACCOUNT_ID] => 40625090400
)
[5] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40708294009
[EXT_ACCOUNT_ID] => 40708294400
)
[6] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40499752009
[EXT_ACCOUNT_ID] => 40499752404
)
[7] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40604404009
[EXT_ACCOUNT_ID] => 40604404400
)
[8] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40425581009
[EXT_ACCOUNT_ID] => 40425581404
)
[9] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 40440897009
[EXT_ACCOUNT_ID] => 40440897408
)
[10] => Array
(
[INDIVIDUAL_PAYMNET_REFNO] => 01008603263
[EXT_ACCOUNT_ID] => 01008610730
)
有关所需输出的更多详细信息,如果在 INDIVIDUAL_PAYMNET_REFNO 中找到第一个数组的元素,则应在表中显示相应的 EXT_ACCOUNT_ID,然后在找到所有匹配的元素后,放置一个空行,然后如果在第一个数组中找不到元素INDIVIDUAL_PAYMNET_REFNO,只需将值复制到同一表行。
我找到了匹配的值,但我不知道如何在一个空行之后找到不匹配的元素,我从匹配的条目中得到一些重复的条目和一些副本,这是我的代码:
echo"<table class=\"table style=\"max-width: 50%; margin: 0 auto;\">
<thead>
<tr>
<th>INDIVIDUAL_PAYMNET_REFNO</th>
<th>EXT_ACCOUNT_ID</th>
</tr>
</thead>
<tbody>";
foreach ($sheetData as $sheet_key => $sheet_data) {
foreach ($found as $found_key => $found_val) {
if ($sheet_data[0] == $found_val['INDIVIDUAL_PAYMNET_REFNO']) {
echo "<tr>";
echo "<td>".$sheet_data[0]."</td>";
echo "<td>".$found_val['EXT_ACCOUNT_ID']."</td>";
echo "</tr>";
}
}
}
echo "<tr>";
echo "<td>"." "."</td>";
echo "<td>"." "."</td>";
echo "</tr>";
foreach ($sheetData as $sheet_key => $sheet_data) {
foreach ($found as $found_key => $found_val) {
if ($sheet_data[0] != $found_val['INDIVIDUAL_PAYMNET_REFNO'] && $found_val['EXT_ACCOUNT_ID'] == $found_val['INDIVIDUAL_PAYMNET_REFNO']) {
echo "<tr>";
echo "<td>".$sheet_data[0]."</td>";
echo "<td>".$sheet_data[0]."</td>";
echo "</tr>";
}
}
}
echo "<tbody>";
echo "</table>";
欢迎对以上代码进行任何更正。谢谢。
【问题讨论】:
-
这个分组不应该在mysql查询中做吗?为了清楚起见,请显示您的准确、所需、渲染的输出。
-
不幸的是,我只能使用给定的值
-
just copy value to same table row.是什么意思? -
只是在同一行的下一列中复制该 ID 号