Array ( [1] => Array ( [0] => 1 [1] => a [2] => э [3] => 44 ) [2] => Array ( [0] => 2 [1] => d [2] => ю [3] => 33 ) [3] => Array ( [0] => 3 [1] => b [2] => я [3] => 22 ) [4] => Array ( [0] => 4 [1] => c [2] => а [3] => 11 ) )
usort($array, "sortir"); //, где function sortir($a, $b) { return strnatcasecmp($a[1], $b[1]); // если надо, к примеру, по второму столбцу сортирнуть }
global $row_sortir; .... usort($array, "sortir"); //, где function sortir($a, $b) { global $row_sortir; return strnatcasecmp($a[$row_sortir-1], $b[$row_sortir-1]); }
$file = $f; $action = $modx->documentIdentifier; global $row_sortir; $row_id = 1; $Output =<<<EOD <form method="post" action="[~[*id*]~]"> <select name="selectId"> <option value="1">по названию</option> <option value="3">по ИФНС</option> <option value="4">по дате</option> <option value="5">по цене</option> </select> <input type="submit" name="submit" value="отсортировать"> </form> EOD; echo $Output; if (isset($_POST["submit"])) { $row_id = $_POST["selectId"]; } // Начало таблицы $table_start = "<table border=1 cellspacing=0 cellpadding=0 class=price>\n"; echo $table_start; if ($row_id == 1) { echo "<colgroup><col class=sort_by></col><col span=5></col></colgroup>"; } elseif ($row_id == 2) { echo "<colgroup><col></col><col class=sort_by></col><col span=4></col></colgroup>"; } elseif ($row_id == 3) { echo "<colgroup><col span=2></col><col class=sort_by></col><col span=3></col></colgroup>"; } elseif ($row_id == 4) { echo "<colgroup><col span=3></col><col class=sort_by></col><col span=2></col></colgroup>"; } else { echo "<colgroup><col span=4></col><col class=sort_by></col><col></col></colgroup>"; } echo "\n<tr>\n"; $row = 0; $fp = fopen ("$file","r"); // файл открыт // получаем построчно данные из csv-файла с разделителями while ($data = fgetcsv ($fp, 1000, ";")) { $counter = count ($data); for ($c=0; $c<$counter; $c++) { // Первую строчку таблицы выводим как заголовок if ($row == 0) { echo $th = "<th>$data[$c]</th>\n"; } else { if ($c == 3) $data[$c] = date_convert ($data[$c]); $huy[$row] = $data; // тупо нумеруем массив,построчно } } $r = $row; if ($data['1'] != "$got") $huy[$row] = 0; //по второму столбцу мне сортировка не нужна, я просто отрубаю строчку по критерию $row++; } $row_sortir = $row_id; usort($huy, "sortir"); // Заканчиваем первую строку в таблице $output .= "</tr>\n"; for ($cc=0; $cc<$r; $cc++) { if ($huy[$cc] == 0) { $output .= ""; } else { $output .= "<tr>\n"; for ($c=0; $c<$counter; $c++) { if ($c == 1) { $output .= "<td class='".$c."'><strong>".$huy[$cc][$c]."</strong></td>\n"; } else { $output .= "<td class='".$c."'>".$huy[$cc][$c]."</td>\n"; } } $output .= "</tr>\n"; } } $output .= "</table>"; fclose ($fp); return $output; function sortir($a, $b) { global $row_sortir; return strnatcasecmp($a[$row_sortir-1], $b[$row_sortir-1]); } function date_convert($_s) { $a = explode('.', $_s); if (sizeof($a) != 3) return 'BUEEEEE!!!'; return trim($a[2]).'-'.trim($a[1]).'-'.trim($a[0]) ; }