Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tablica wielowymiarowa-losowy klucz z 2 wymiaru
meron11
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 17.08.2009

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


Mam tablicę którą chcę wyświetlić(część):
Cytat
Array
(
[0] => Array
(
[0] => alegratka samochody

)

[1] => Array
(
[0] => alegro motoryzacja

[1] => alegro pl samochody osobowe

[2] => alegro samochody

[3] => alegro samochody czesci

[4] => alegro samochody osobowe

[5] => alegro samochody osobowe u¿ywane

[6] => alegro.pl motoryzacja

)



I o to chodzi że jeżeli mam np taki wymiar że jest jedno pole to je wyświetli, a kilka(tak jak w drugiej "podtablicy") wybrało losowe z tej listy i je wyświetliło. czyli np przy pierwszym przepuszczeniu w wyniku chcę dostać (z tego kawałka):

alegratka samochody

alegro samochody czesci
Go to the top of the page
+Quote Post
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


zrób z tego jedną tablicę za pomocą array_merge i losuj za pomocą array_rand


--------------------
:)
Go to the top of the page
+Quote Post
meron11
post
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 17.08.2009

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


tylko że takich podtablic mam kilkaset z podobną treścią i nie mogę ich połaczyć, musze z każdej podtablicy losować wink.gif

większa próbka:
Cytat
Array
(
[0] => Array
(
[0] => alegratka samochody

)

[1] => Array
(
[0] => alegro motoryzacja

[1] => alegro pl samochody osobowe

[2] => alegro samochody

[3] => alegro samochody czesci

[4] => alegro samochody osobowe

[5] => alegro samochody osobowe u?ywane

[6] => alegro.pl motoryzacja

)
[59] => Array
(
[0] => cennik drzwi wewn?trznych

[1] => cennik okien

[2] => cennik okien pcv

[3] => cennik okien plastikowych

)


[92] => Array
(
[0] => komputer stacjonarny

[1] => komputer

)


I z każdego zestawiku trzeba po jednym wylosować wink.gif

Ten post edytował meron11 8.08.2011, 20:39:35
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Zakładam że ta Twoja tablica to $in
  1.  
  2. $out =array();
  3.  
  4. while(count($array)<2)//ta dwójka to liczba elementów które chcesz wylosować
  5. {
  6. $a=array_rand($in)//to zwraca losową tablicę jednowymiarową
  7. $b = array_rand($a);//to zwraca element (string) z tablicy przed chwilą uzyskanej
  8. if(!in_array($b,$out))//sprawdza czy element został już dodany do tablicy
  9. $out[]=$b;//dodaje element do tablicy
  10.  
  11. }
  12.  


Wadą tego rozwiązania jest to, że prawdopodobieństwo wystąpienia elementu np. alegro samochody jest 7 razy mniejsze niż alegratka samochody.

Nie wiem co za problem masz w scaleniu tablicy.


--------------------
:)
Go to the top of the page
+Quote Post
meron11
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 17.08.2009

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


Źle!

NIe czytasz co ja piszę.... Ja mam to w jednej tablicy wielowymiarowej i struktura jej jest taka:

Tablica:

[1(klucz pierwszy)]
(
(w nim kilka opcjii albo jedna)
[0] => komputer stacjonarny

[1] => komputer

)

I tak kilkaset razy różnych bloków.

CHodzi o to żeby z każdego takiego bloku wylosować jedną wartość i ją zapisać do nowej tablicy/wyprintować.
A twój skrypt tego nie robi wink.gif
Go to the top of the page
+Quote Post
peter13135
post
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


  1. $out =array();
  2.  
  3. foreach($in as $element)
  4. {
  5. $out[]=array_rand($element);//zamiast tego możesz od razu dać echo.
  6. }


--------------------
:)
Go to the top of the page
+Quote Post
meron11
post
Post #7





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 17.08.2009

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


na wyjściu otrzymałęm indexy a nie wartości ;/

http://wklej.org/id/573961/
Go to the top of the page
+Quote Post
peter13135
post
Post #8





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Racja, wybacz wink.gif
$out[]= $element[array_rand($element,1)];


--------------------
:)
Go to the top of the page
+Quote Post
meron11
post
Post #9





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 17.08.2009

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


Dziękuję, dobranoc, close wink.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 05:19