PHP

时间:2018-01-28 17:10:30

标签: php mysql arrays json html-table

无法找到具体答案,以为我会问。简而言之,我有一个基于存储在我的数据库中的数据从API检索信息的表,我想要做的就是从该表中获取总共某些而不是所有列,以便我可以在其他地方使用它们。网站。例如,让我们使用Profit / Loss列和Total Divi。我是否必须以某种方式将结果存储为数组,以便我可以在其他地方检索它或者它是不同的东西?

<th>Profit/Loss</th>
<?php
        for($x=0;$x<$y;$x++) 
        {?>
            <tr>
                <td class="input"><?php 
                    if($pri[$x] > $lastprice[$x])
                    {
                        echo ($lastprice[$x]-$pri[$x]) * $vol[$x];
                    }
                    else if($pri[$x] < $lastprice[$x]) 
                    {
                         echo ($lastprice[$x]-$pri[$x]) * $vol[$x];
                    }
                    else
                        echo '0'; 
                    ?></td>
                 <td><?php 
                    $div = file_get_contents("https://api.iextrading.com/1.0/stock/market/batch?symbols=$symbol[$x]&types=stats&filter=dividendRate");  
                    $div = json_decode($div,TRUE);  
                    foreach($div as $divi => $value) {
                    echo $value['stats']['dividendRate']; 
                    }
                    ?></td>
                <td><?php 
                    $firstno  = floatval($vol[$x]);
                    $secondno = floatval($value['stats']['dividendRate']);
                    $sum = $firstno * $secondno;
                    print ($sum);
                    ?></td>
        </tr>
    <?php } ?>

所以我只留下了盈利/亏损行/列以及股息金额(第2列)和股息总额,这样你就可以看到我是如何得到这些数字的。

1 个答案:

答案 0 :(得分:1)

您的要求是,您希望在代码的后期使用每行的盈利/亏损总股息列数据。你可以做的是,在最外面的for循环之前创建一个空数组,并在循环的每次迭代中,附加key为$x的对,并且value将是的数组盈利总股息列数据。

<th>Profit/Loss</th>
<?php
    $arr = array();
    for($x=0; $x < $y; $x++){
    ?>
        <tr>
            <td class="input">
            <?php 
                $profitOrLoss = ($lastprice[$x]-$pri[$x]) * $vol[$x];
                echo $profitOrLoss;
            ?>
            </td>
            <td>
            <?php 
                $div = file_get_contents("https://api.iextrading.com/1.0/stock/market/batch?symbols=$symbol[$x]&types=stats&filter=dividendRate");  
                $div = json_decode($div,TRUE); 
                $sum = 0;
                foreach($div as $divi => $value) {
                    echo $value['stats']['dividendRate']; 
                    $sum += (floatval($vol[$x]) + floatval($value['stats']['dividendRate']));
                }
            ?>
            </td>
            <td>
            <?php 
                echo $sum;
            ?>
            </td>
        </tr>
    <?php 
        $arr[$x] = array('profitOrLoss' => $profitOrLoss, 'sum' => $sum);
    } 
?>

更新(1):

基于your comment我想要的只是将Profit / Loss列中的所有行以及Total Divi列中的行加在一起。解决方案代码就像这样:

<th>Profit/Loss</th>
<?php
    $profitOrLossSum = 0;
    $dividendRateSum = 0;
    for($x=0; $x < $y; $x++){
    ?>
        <tr>
            <td class="input">
            <?php 
                $profitOrLoss = ($lastprice[$x]-$pri[$x]) * $vol[$x];
                $profitOrLossSum += $profitOrLoss;
                echo $profitOrLoss;
            ?>
            </td>
            <td>
            <?php 
                $div = file_get_contents("https://api.iextrading.com/1.0/stock/market/batch?symbols=$symbol[$x]&types=stats&filter=dividendRate");  
                $div = json_decode($div,TRUE); 
                $sum = 0;
                foreach($div as $divi => $value) {
                    echo $value['stats']['dividendRate']; 
                    $sum += (floatval($vol[$x]) + floatval($value['stats']['dividendRate']));
                    $dividendRateSum += floatval($value['stats']['dividendRate']);
                }
            ?>
            </td>
            <td>
            <?php 
                echo $sum;
            ?>
            </td>
        </tr>
    <?php 
    } 
    $arr = array('profitOrLossSum' => $profitOrLossSum, 'dividendRateSum' => $dividendRateSum);
?>

旁注:如果您想查看完整的数组结构,请执行var_dump($arr);