Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Niezrozumienie działania PHP
pabito
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 4
Dołączył: 14.05.2013

Ostrzeżenie: (0%)
-----


Chciałbym tu móc zadać sukcesywnie parę pytań gdy nie zrozumiem czegoś podczas nauki PHP.

Mam taki kod
  1. <?php
  2. $tbl1 = array (10, 100, 100, 0);
  3. $tbl2 = array (1, 3, 2, 4);
  4. array_multisort ($tbl1, $tbl2);
  5.  
  6. var_dump($tbl1);
  7. var_dump($tbl2);
  8. ?>


W wyniku działania otrzymam
array (size=4)
0 => int 0
1 => int 10
2 => int 100
3 => int 100
array (size=4)
0 => int 4
1 => int 1
2 => int 2
3 => int 3

I teraz moje pytanie, dlaczego 4 jest pierwsza skoro jest to funkcja sortująca po wartości ?

Inny przypadek

  1. <?php
  2. $tbl1 = array (10, 100, 100, 0,3);
  3. $tbl2 = array (1, 6, 3,4);
  4. array_multisort ($tbl1, $tbl2);
  5.  
  6. var_dump($tbl1);
  7. var_dump($tbl2);
  8. ?>


daje w wyniku:

array (size=5)
0 => int 10
1 => int 100
2 => int 100
3 => int 0
4 => int 3
array (size=4)
0 => int 1
1 => int 6
2 => int 3
3 => int 4

Ten post edytował pabito 18.01.2014, 23:43:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


hint 1: sprawdź, co zwraca array_multisort, np. za pomocą var_dump. Jeśli zwróciło false, sortowanie nie nastąpiło (zakładam, że czytasz dokumentację)
hint 2: elementy w drugiej tablicy są przestawiane tak, jak przestawiane są elementy w pierwszej tablicy
Go to the top of the page
+Quote Post
sazian
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


obie tablice muszą mieć ten sam rozmiar, a samo sortowanie działa tak jak w excel'u - sortujesz tylko pierwszą kolumnę, a pozostałe zachowują odpowiednią kolejność
Go to the top of the page
+Quote Post
lukasz1985
post
Post #4





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

Ostrzeżenie: (0%)
-----


Poczytaj sobie dokumentacje, ze zrozumieniem.
Go to the top of the page
+Quote Post
com
post
Post #5





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


  1. $tbl1 = array (10, 100, 100, 0);
  2. $tbl2 = array (1, 3, 2, 4);


Czego tu nie rozumiesz, przecież zamieniasz kolejność w obu tablicach naraz czyli
1 krok:
1 tablica
0,10,100,100
2 tablica
4,1,3,2

A ze więcej zamian nie było potrzebnych to jest koniec

A w drugim przypadku nie posortujesz przecież tablic o 2 rozmiarach, bo skąd weźmie Ci wartości których w 1 z nich brakuje

To co rozpisałem oczywiście jest teoretyczna zasadą przesunięcia zostaną oczywiście zastosowane zgodnie z zasadza sortowania, to tylko miało na celu pokazanie czemu jest 4 w drugiej tablicy na 1 miejscu (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 12:09