2015-11-02 152 views
-1
 foreach($myFile as $value){ 
      $arr = explode(",",$value); 

      echo "<tr>"; 
       foreach($arr as $out) { 

         if ((strcmp($arr[$city], $out)) == 0){ 
         echo "<td><i>" . $out . "</i></td>"; 
        } 

        else if((strcmp($arr[$pick], $out)) == 0){ 
         $var = ucfirst(strtolower($out)); 
         echo "<td>". $var. "</td>"; 
         unset($var); 
        } 

        else{ 
         echo "<td>" . $out . "</td>"; 
        } 
        $count++; 
        unset($out); 
       } 
      echo "</tr>"; 
      unset($arr); 
     } 
     unset($myFile); 

上面的代碼用於讀取.csv文件並將其打印爲HTML表格。它已經在工作,但我在分類時遇到了一些麻煩。PHP:對數組進行排序

我的.csv文件的內容是變量$myFileThat's the output

現在我應該排列由列陣列,我該怎麼做?

而另一個問題:爲什麼我會得到未定義偏移量的錯誤? 錯誤行是if((strcmp(...))。該陣列有10項和變量的值是:
$pick = 9
$city = 5

+0

我感到困惑,你要在這裏進行排序... – Sumurai8

+0

整個輸出應該被列進行排序什麼* *最後我 –

+0

不認爲你需要'unset()'vars。當(重新)定義它們時,它們會替換以前的任何值。 – MaggsWeb

回答

0

使用php multisort function的$ ARR數組定義之後對上。

foreach ($arr as $key => $row) 
{ 
    $last[$key] = $row['last']; 
} 
array_multisort($last, SORT_DESC, $arr) 
+0

它不工作,只是試了一下.. –

0

你可以用usort完成這個。它需要一個帶有兩個參數的函數,它們應該相互比較。該函數應該返回一個int。至於你的其他錯誤,我猜測你在一個函數中有這個代碼,它不能訪問全局變量。

請注意,試圖找出你要顯示的列是否是一個特殊的列,通過比較這些列的值是奇怪的。如果你想在某些列中做一些特殊的事情,只需迭代一個for循環而不是foreach循環,然後比較列索引。

function displayTable($myFile) { 
    global $columnCity, $columnPick; 

    usort($myFile, function($a, $b) { 
    global $columnLast; 
    return strcmp($a[$columnLast], $b[$columnLast]); 
    }); 

    echo "<table>"; 

    foreach($myFile as $value) { 
    $arr = explode(",", $value); 
    $count = 0; //Useless? 

    echo "<tr>"; 

    for($i = 0; $i < count($arr); $i++) { 
     $out = $arr[$i]; 
     if($i == $columnCity) { 
     echo "<td><i>{$out}</i></td>"; 
     } else if($i == $columnPick) { 
     $var = ucfirst(strtolower($out)); 
     echo "<td>{$var}</td>"; 
     unset($var); 
     } else { 
     echo "<td>{$out}</td>"; 
     } 
     $count++; 
     unset($out); 
    } 

    echo "</tr>"; 
    unset($arr); 
    } 

    unset($myFile); 

    echo "</table>"; 
} 

displayTable($input); 
?> 

小提琴,請訪問:http://phpfiddle.org/lite/code/yqii-fkn2