1

デフォルトで2列目が数値で昇順にソートされたテーブルがあります。

このテーブルから上位 5 行を取得しようとしていますが、スクリプトは tablesorter の強制的な並べ替え順序に従いたくないようです。デフォルトの並べ替えられていないデータを取得しているだけです。

では、スクリプトで並べ替えられたテーブル データを取得するにはどうすればよいでしょうか。このスクリプトでは、すべてのデータを取得して再度並べ替える必要はありません。

ここに私のコードがあります

<?php 
include("bestbrokers_array.php");
require('simple_html_dom.php'); 

$table = array(); 

$html = file_get_html('http://www.forexfbi.com/best-forex-brokers-comparison/'); 

$num=1;
foreach($html->find('tr') as $row) { 
    if($num <= 6)
{
$rating = $row->find('td',1)->innertext; 
    $name = $row->find('td',0)->plaintext; 



    $table[$name][$rating] = true; 
$num++;
}
} 

html_show_array($table);

?> 

と..

<?php
function do_offset($level){
    $offset = "";             // offset for subarry 
    for ($i=1; $i<$level;$i++){
    $offset = $offset . "<td></td>";
    }
    return $offset;
}

function show_array($array, $level, $sub){
    if (is_array($array) == 1){          // check if input is an array
       foreach($array as $key_val => $value) {
           $offset = "";
           if (is_array($value) == 1){   // array is multidimensional
           echo "<tr>";
           $offset = do_offset($level);
           echo $offset . "<td>" . $key_val . "</td>";
           show_array($value, $level+1, 1);
           }
           else{                        // (sub)array is not multidim
           if ($sub != 1){          // first entry for subarray
               echo "<tr nosub>";
               $offset = do_offset($level);
           }
           $sub = 0;
           echo $offset . "<td main ".$sub." width=\"120\">" . $key_val . 
               "</td>"; 
           echo "</tr>\n";
           }
       } //foreach $array
    }  
    else{ // argument $array is not an array
        return;
    }
}

function html_show_array($array){
  echo "<table cellspacing=\"0\" border=\"2\">\n";
  show_array($array, 1, 0);
  echo "</table>\n";
}
?> 
4

0 に答える 0