Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] multisortowanie wielu tablic względem jednej
Forum PHP.pl > Forum > PHP
shpaque
Witam serdecznie,
mam takie oto pytanie - czy i jak/ da się posortować wiele tablic zdględem jednej z nich? Kod poniżej, najpierw teoria:

- mam dwie pętle z dwiema tablicami (razem 4)
- w 1. pętli jedna tablica to tytuły działów, a druga - przypisane do nich numery stron
- w pętli 2. jedna to tytuły, a druga przypisane do nich strony

chodzi o to zeby wszystko wyfiltrować tak, żeby było od pierwszej strony do ostatniej typu: DZIAŁ I, strona 2 (w nim: link 1, str 3; link 2, str 5; link 3 str 15), DZIAŁ II strona 16 (w nim link 1, str 18...)

  1. if (!empty($_POST['mainTitle']))
  2. {
  3. $countMains = count($_POST['mainTitle']);
  4. for ($m = 0; $m < $countMains; $m++)
  5. {
  6. $mainLink[] = $_POST['mainTitle'][$m];
  7. $mainPage[] = $_POST['mainPage'][$m];
  8.  
  9. $countLinks = count($_POST['linkTitle']);
  10. for ($l = 0; $l < $countLinks; $l++)
  11. {
  12. $linkTitle[] = $_POST['linkTitle'][$l];
  13. $linkPage[] = $_POST['linkPage'][$l];
  14. }
  15. }
  16. }
LowiczakPL
możesz sobie to rozbudować do swoich potrzeb

  1. function sortArrayByArray(array $array, array $orderArray, $idA, $idB) {
  2. global $order;
  3.  
  4. $posA = $order[$a[$idA]];
  5. $posB = $order[$b[$idB]];
  6.  
  7. if ($posA == $posB) {
  8. return 0;
  9. }
  10. return ($posA < $posB) ? -1 : 1;
  11. }
nospor
@LowiczakPL kod co tu wstawiles nie ma najmniejszego sensu....
Raz ze funkcja ma argumenty ktore nigdy nie sa uzyte
Dwa ze uzywasz jakiejs tablicy globalnej ktora czort wie jak wyglada
Trzy ze jest to totalnie wyrwany kawalek z wiekszego kontekstu i sam w sobie nic nie wnosi procz pokazania: "Jak nie pisac funkcji"
Lord
trochę ciężko mi sobie ogarnąć jaki ma być efekt i chyba inaczej bym do tego podszedł. Zerknij sobie na przykład 3. Może to ci pomoże.

http://php.net/manual/en/function.array-multisort.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.