php从两个数组(foreach外部)获取相同的索引值

时间:2013-07-27 13:48:19

标签: php arrays foreach

以例如$data_debit_turnover

命名的数组
Array
(
[0] => Array
    (
        [VatReturnRowNumberForDebitTurnover] => 63
        [Total] => 0.00
    )

[1] => Array
    (
        [VatReturnRowNumberForDebitTurnover] => 64
        [Total] => 44.28
    )
)

HTML需要看起来像这样

<table><tr>
<td><strong>63</strong></td>
<td>0.00</td>
</tr><tr>
<td><strong>64</strong></td>
<td>44.28</td>
</tr></table>

首先尝试使用php foreach,但在这种情况下,而不是一个表获取多个表[0], [1]等。

然后尝试了

<td><strong>64</strong></td>
<td><?php
if( $data_debit_turnover[1][VatReturnRowNumberForDebitTurnover] == '64'){
echo $data_debit_turnover[1][Total]. ' Total<br>';
}?>
</td>

但问题在于[1]等。我不知道[]的数量;可能是[1],可能是[30]

尝试过这样的事情

$resultVatReturnRowNumberForDebitTurnover = array();
$resultTotal = array();
foreach($data_debit_turnover as $i => $result){
$resultVatReturnRowNumberForDebitTurnover[] = $result[VatReturnRowNumberForDebitTurnover];
$resultTotal[] = $result[Total];
}

<td><strong>64</strong></td>
<td><?php
if (in_array('64', $resultVatReturnRowNumberForDebitTurnover)) {
echo $resultTotal[1];
}?>
</td>

同样的问题[1]。如何从另一个数组中回显相应的(索引)值。

例如,如果64是数组$resultVatReturnRowNumberForDebitTurnover中的第二个值,则需要回显数组$resultTotal中的第二个值。

可能还有其他方式。

请建议。

展示我对foreach

的所作所为
<?php
foreach($data_debit_turnover as $i => $result){
?>
<table>
<tr>
<td><strong>63</strong></td>
<td>
<?php if($result[VatReturnRowNumberForDebitTurnover] = '63') {
echo $result[Total];
} ?>
</td>
</tr>
<tr>
<td><strong>64</strong></td>
<td>
<?php if($result[VatReturnRowNumberForDebitTurnover] = '64') {
echo $result[Total];
} ?>
</td>
</tr>
</table>
<?php
}
?>

更新感谢@ user2340218建议获得一些解决方案。每个<td>必须使用foreach。可能还有一些更好的解决方案。

<table><tr>
<td><strong>64</strong></td>
<td><?php foreach($data_debit_turnover as $vatReturn){if($vatReturn['VatReturnRowNumberForDebitTurnover'] == '64') {echo $vatReturn['Total'];}}?></td>
</tr><tr>
<td><strong>67</strong></td>
<td><?php foreach($data_debit_turnover as $vatReturn){if($vatReturn['VatReturnRowNumberForDebitTurnover'] == '67') {echo $vatReturn['Total'];}}?></td>
</tr></table>

解决方案最后使用的解决方案@Daniel P建议。

$resultVatReturnRowNumberForDebitTurnover = array();
$resultTotal = array();
foreach($data_debit_turnover as $i => $result){
$resultVatReturnRowNumberForDebitTurnover[] = $result[VatReturnRowNumberForDebitTurnover];
$resultTotal[] = $result[Total];
}

$VatReturnRowNumberForDebitTurnoverModified = array_combine($resultVatReturnRowNumberForDebitTurnover, $resultTotal);


<table>
<tr>
<td><strong>62</strong></td>
<td>
<?php echo $VatReturnRowNumberForDebitTurnoverModified[62]; ?>
</td>
</tr>
<tr>
<td><strong>63</strong></td>
<td>
<?php echo $VatReturnRowNumberForDebitTurnoverModified[63]; ?>
</td>
</tr>
</table>

其实不得不接受@Daniel P的回答:)但是因为理解不能接受2个答案

3 个答案:

答案 0 :(得分:4)

我猜测VatReturnRowNumberForDebitTurnover个数字是唯一的,所以你的数组应该是这样的:

Array
(
    [63] => 0.00
    [64] => 44.28
)

数组索引是您的VatReturnRowNumberForDebitTurnover,值是您的总数。

要测试VatReturnRowNumberForDebitTurnover是否有值,您只需使用isset()

if (isset($array[63])) {
    echo $array[63]
}

构建表格:

<table>
<?php foreach($data_debit_turnover as $i => $total){ ?>
    <tr>
        <td><strong><?php echo $i; ?></strong></td>
        <td><?php echo $total; ?></td>
    </tr>
<?php } ?>
</table>

答案 1 :(得分:3)

你是说这个吗?

<table>
<?php foreach($data_debit_turnover as $vatReturn){ ?>
     <tr>
        <td><strong><?php print $vatReturn['VatReturnRowNumberForDebitTurnover'] ?></strong></td>
        <td><?php print $vatReturn['total'] ?></td>
     </tr>
<?php } ?>
</table>

答案 2 :(得分:1)

像这样使用foreach

<table>
<?php
foreach ($Array as $item)
{
   echo '<tr>';
   echo '<td><strong>' . $item['VatReturnRowNumberForDebitTurnover'] . '</strong></td>';
   echo '<td>' . $item['Total'] . '</td>';
   echo '</tr>'
}
?>
</table>