【问题标题】:How can I sort by variable within a foreach loop (php)?如何在 foreach 循环(php)中按变量排序?
【发布时间】:2015-08-20 10:01:52
【问题描述】:

在我的每个循环中,我想根据我的变量 $total resp 的值对我的选项进行排序。由data-total:

     <select>
                   <option data-total="0" value="" selected>--</option>
                   <?php 

                    $pdo = Database::connect();


                    $sql = "SELECT  *  FROM table_a;" ;

                    foreach ($pdo->query($sql) as $row) {

                            $a = $row['a'];
                            $number_a = $row['number_a'];               

                            $sql2 = "SELECT  *  FROM table_b WHERE a = '$a';" ;
                            $number_b = 0;

                            foreach ($pdo->query($sql2) as $row2) {
                                $number_b+= $row2['number']; 
                            }

                            $total = $number_a - $number_b;

                            echo '<option data-total="'.$total.'" value="'.$a.'">'.$a;

                    }

                    Database::disconnect();

                        ?>                                                          
     </select>

这可能吗?非常感谢!

【问题讨论】:

    标签: php


    【解决方案1】:

    在你的 for 循环中做这样的事情

    $total_arr = array();
    foreach ($pdo->query($sql) as $row) {
    
                                $a = $row['a'];
                                $number_a = $row['number_a'];               
    
                                $sql2 = "SELECT  *  FROM table_b WHERE a = '$a';" ;
                                $number_b = 0;
    
                                foreach ($pdo->query($sql2) as $row2) {
                                    $number_b+= $row2['number']; 
                                }
    
                                $total = $number_a - $number_b;
                                $total_arr[$a] = $total;
    
                        }
    
    arsort($total_arr);
    foreach ($total_arr as $key => $val) {
        echo '<option data-total="'.$val.'" value="'.$key.'">'.$key;
    }
    

    【讨论】:

    • 一个问题:$a 现在没有正确的值。它现在对所有选项都具有相同的值,但在我上面的代码中它具有正确的值。
    • 谢谢!但这并没有给我$a 的值,它给了我一个0和一个1
    • 我需要一个多维数组吗?
    • 很遗憾,我找不到您所做的更改
    • 你试过这个吗?改为arsort($total_arr);
    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 2021-06-01
    • 2012-12-20
    • 1970-01-01
    • 2018-08-23
    • 2017-08-03
    • 2023-04-06
    相关资源
    最近更新 更多