2013-07-27 62 views
2

有无阵列命名例如$data_debit_turnoverPHP从两个阵列(外的foreach)

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个回答

+0

显示'foreach'代码 –

+0

接着说:foreach'底。获得如此多的表格以及'array'键的数量。但只需要一张表 – user2465936

+0

然后将'

'移到'foreach'之外。这不明显吗? –

回答

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> 
+0

这是一个问题? – Oswald

+0

是的....看起来很有效。不要以为只有'

'需要在'foreach'之外。我会再试一次。 – user2465936

+0

根据您的建议获得一些解决方案(更新后发布问题)。可能有一些更好的解决方案...... – user2465936

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> 
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> 
+0

据我所知,我需要将'VatReturnRowNumberForDebitTurnover'转换为'[63] [64]'等。然后在必要的'​​'必须使用'if(isset($ array [63] )){echo $ array [63]}'?没有“foreach”?这将是更好的解决方案。我会查的。数字63,64等需要“手写”而不是脚本。而不是'<?php echo $ i; ''需要“不可更改”数字:63,64,67等 – user2465936

+0

以这种方式将数据放入数组中的优点是,您不必每次都用'foreach()'遍历整个数组想要查看价值。请注意'VatReturnRowNumberForDebitTurnover'必须是唯一的(我猜是这种情况)。你可以用'if(isset($ array [63]))'查找单个值,或者用'foreach()显示整个内容' –

+0

将检查所有内容。我想我可以修改'VatReturnRowNumberForDebitTurnover'是唯一的。是的,'(isset($ array []))'会更好 – user2465936