код большой - показываю только не работающую часть Код (PHP): foreach ($tables as $val){ $res_1 = mysql_query("SELECT * FROM teams WHERE $sql_teams ORDER BY teams_name ASC "); $row_1 = mysql_fetch_array($res_1); $teams = array();do{$teams[] = $row_1;}while($row_1 = mysql_fetch_array($res_1)); foreach ($teams as $key => $row) { $o[$key] = $row['o']; $sh_z[$key] = $row['sh_z']; $sh_p[$key] = $row['sh_p']; } array_multisort($o, SORT_DESC, $sh_z, SORT_DESC, $sh_p, SORT_ASC, $teams); } получается что array_multisort() сортирует один и тот-же массив с разными значениями, если следующий массив больше предыдущего то проблем нет, а если меньше выскакивает ошибка Warning: array_multisort(): Array sizes are inconsistent PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Re: сортировка многомерного массива array_multisort() в цикл а сразу в БД нельзя отсортировать как нужно??
Re: сортировка многомерного массива array_multisort() в цикл нет, значения по которым сортируется не хранятся в бд, они высчитываются и добавляются в процессе - это подсчет очков команд в турнирных таблицах
Re: сортировка многомерного массива array_multisort() в цикл mysql тоже может считать и делать арифметические операции и многое другое, добавь данные к запросу
Re: сортировка многомерного массива array_multisort() в цикл и зачем в цикл пихать запрос Код (Text): $res_1 = mysql_query("SELECT * FROM teams WHERE $sql_teams ORDER BY teams_name ASC "); который с ним не связан, что бы сайт грузить долго, или всё иначе??
Re: сортировка многомерного массива array_multisort() в цикл там сложный процесс подсчета, я даже не уверен что вообще смогу составить такой запрос, тут вопрос в том как работает array_multisort, и что ему не нравится, и что можно с ним сделать каждую итерацию выбираются разные строки, условия выбора высчитывается выше
Re: сортировка многомерного массива array_multisort() в цикл Тогда бы и находился этот запрос там выше. А в этом цикле же он не связан ??
можно выбрать 1 раз все строки и сортировать в цикле с помощью array_filter(), но там неизвестное заранее количество условий которые формируются другой таблицей, код получится большой и более сложный, цикл проходит не более 10 раз поэтому нагрузка в данном случае не большая Добавлено спустя 7 минут 45 секунд: Re: сортировка многомерного массива array_multisort() в цикле Нашел проблему, каждую итерацию $teams обновлялся а $o, $sh_z, $sh_p - дописывались в созданный массив, добавляем unset() и всё работает: Код (PHP): foreach ($tables as $val){ $res_1 = mysql_query("SELECT * FROM teams WHERE $sql_teams ORDER BY teams_name ASC "); $row_1 = mysql_fetch_array($res_1); $teams = array();do{$teams[] = $row_1;}while($row_1 = mysql_fetch_array($res_1)); unset($o); unset($sh_z); unset($sh_p); foreach ($teams as $key => $row) { $o[$key] = $row['o']; $sh_z[$key] = $row['sh_z']; $sh_p[$key] = $row['sh_p']; } array_multisort($o, SORT_DESC, $sh_z, SORT_DESC, $sh_p, SORT_ASC, $teams); }
Re: сортировка многомерного массива array_multisort() в цикл прекрасно, поднимаю за тебя бакал красного вина ((