PHP:获取多维数组的前5个值

PHP:获取多维数组的前5个值,php,Php,我有一个数组: Array ( [0] => Array ( [trade] => Sealwell [open] => 7 [closed] => 0 ) [1] => Array ( [trade] => Add-a-Line [open] => 2 [closed] => 0 ) [2] => Array ( [trade] => C.T.A [open] => 5 [closed] => 0 ) [3] =>

我有一个数组:

Array ( [0] => Array ( [trade] => Sealwell
[open] => 7
[closed] => 0
) [1] => Array ( [trade] => Add-a-Line
[open] => 2
[closed] => 0
) [2] => Array ( [trade] => C.T.A
[open] => 5
[closed] => 0
) [3] => Array ( [trade] => Chadoak
[open] => 1
[closed] => 0
) [4] => Array ( [trade] => Chevron
[open] => 0
[closed] => 1
) [5] => Array ( [trade] => City Pro Sign
[open] => 8
[closed] => 10
) [6] => Array ( [trade] => ControlFab
[open] => 4
[closed] => 0
) [7] => Array ( [trade] => Detail
[open] => 1
[closed] => 0
) [8] => Array ( [trade] => Fabcot to advise
[open] => 1
[closed] => 0
) [9] => Array ( [trade] => FireBase
[open] => 2
[closed] => 0
) [10] => Array ( [trade] => Gemwood
[open] => 1
[closed] => 0
) [11] => Array ( [trade] => HG
[open] => 3
[closed] => 0
) [12] => Array ( [trade] => I.E.S
[open] => 11
[closed] => 30
) [13] => Array ( [trade] => Integral
[open] => 5
[closed] => 0
) [14] => Array ( [trade] => McGee
[open] => 26
[closed] => 0
) [15] => Array ( [trade] => McGee / Detail
[open] => 1
[closed] => 0
) [16] => Array ( [trade] => McGee / Sealwell
[open] => 1
[closed] => 0
) [17] => Array ( [trade] => McGee / Spence
[open] => 0
[closed] => 1
) [18] => Array ( [trade] => Meridian
[open] => 7
[closed] => 0
) [19] => Array ( [trade] => Mulgrave
[open] => 2
[closed] => 0
) [20] => Array ( [trade] => Mulgrave / McGee
[open] => 1
[closed] => 0
) [21] => Array ( [trade] => Precast
[open] => 1
[closed] => 0
) [22] => Array ( [trade] => R&D
[open] => 1
[closed] => 0
) [23] => Array ( [trade] => Spence
[open] => 1
[closed] => 0
) [24] => Array ( [trade] => Star
[open] => 2
[closed] => 0
) [25] => Array ( [trade] => Tieman
[open] => 2
[closed] => 0
) [26] => Array ( [trade] => TTI
[open] => 3
[closed] => 0
) ) 
我想获得开盘价值最高的前五名交易和开盘+收盘数量最高的前五名交易,如


开放价值最高的前五名交易

Array ( [0] => Array ( [trade] => McGee) [open] => 26 ) 
( [1] => Array ( [trade] => I.E.S) [open] => 11 ) 
( [2] => Array ( [trade] => City Pro Sign) [open] => 8 ) 
( [3] => Array ( [trade] => Meridian) [open] => 7 ) 
( [4] => Array ( [trade] => Sealwell) [open] => 7 ) 
)
开盘+收盘次数最多的前五名交易

Array ( [0] => Array ( [trade] => I.E.S) [open] => 11 [closed] => 30 [count] => 41) 
    ( [1] => Array ( [trade] => McGee) [open] => 26 [closed] => 0 [count] => 26) 
    ( [2] => Array ( [trade] => City Pro Sign) [open] => 8 [closed] => 10 [count] => 18) 
    ( [3] => Array ( [trade] => Meridian) [open] => 7 [closed] => 0 [count] => 7) 
    ( [4] => Array ( [trade] => Sealwell) [open] => 7 [closed] => 0 [count] => 7) 
    )
  • 正确格式化数组。您的示例在php中不起作用

    $arrays=array(数组(“trade”=>“Sealwell”, “打开”=>7, “关闭”=>0, ),
    数组(“交易”=>“添加行”, “打开”=>2, “已关闭”=>0 ));

  • 试试usort。例如,您可以编写两个不同的函数。一个比较“打开”和一个比较“打开”+“关闭”。 这是一个快速的实施,你将不得不锻炼休息

    function compareOpenClose($a, $b) {
      $x = $a['open'] + $a['closed'];
      $y = $b['open'] + $b['closed'];
      if ($x == $y) {
        return 0;
      } else if ( $x > $y ) {
        return -1;
      } else {
        return 1;
      }
    }
    
    
    usort($arrays, 'compareOpenClose');
    print_r($arrays);
    

  • 开放价值最高的前五名交易

    Array ( [0] => Array ( [trade] => McGee) [open] => 26 ) 
    ( [1] => Array ( [trade] => I.E.S) [open] => 11 ) 
    ( [2] => Array ( [trade] => City Pro Sign) [open] => 8 ) 
    ( [3] => Array ( [trade] => Meridian) [open] => 7 ) 
    ( [4] => Array ( [trade] => Sealwell) [open] => 7 ) 
    )
    
    首先重新格式化数组

    Array ( [Sealwell] => 7 [Add-a-Line] => 2 [C.T.A] => 5 [Chadoak] => 1 [Chevron] => 0 [City Pro Sign] => 8 [ControlFab] => 4 [Detail] => 1 [Fabcot to advise] => 1 [FireBase] => 2 [Gemwood] => 1 [HG] => 3 [I.E.S] => 11 [Integral] => 5 [McGee] => 26 [McGee / Detail] => 1 [McGee / Sealwell] => 1 [McGee / Spence] => 0 [Meridian] => 7 [Mulgrave] => 2 [Mulgrave / McGee] => 1 [Precast] => 1 [R&D] => 1 [Spence] => 1 [Star] => 2 [Tieman] => 2 [TTI] => 3 ) 
    
    然后使用
    arsort($top\u 5\u td,SORT\u NUMERIC)在一维数组中推送完整结果

    $i=0;
    foreach($top_5_td as $key => $val){
        $top_5_td_op[$i]="<td>Trade ".$key. "</td><td>Status " . $val . "</td>";
        $i++;
    }
    
    <table>
        <?php
        for($i=0;$i<5;$i++){
                echo '<tr>';
            echo $top_5_td_op[$i];
            echo '</tr>';
        }
        ?>
    </table>
    
    $i=0;
    foreach($key=>$val){
    $top_5_td_op[$i]=“交易”$key.“状态”$val.”;
    $i++;
    }
    
    你试过什么吗?yap:sort($array,sort\u NUMERIC)