Łączenie losowo wybranych elementów tablicy

0

Witam serdecznie,
Mam takie dwie tablice:

 
$miasta = Array();
$stmt = $db->prepare("select miasto from miasta   ORDER by RAND() ASC LIMIT 50;");
$stmt->execute();
foreach ($stmt as $row) {
array_push($miasta, $row['miasto']);
}

$produkty = Array();
$stmt = $db->prepare("select produkty from produkty   ORDER by RAND() ASC LIMIT 50;");
$stmt->execute();
foreach ($stmt as $row) {
array_push($produkty, $row['produkty']);
}

chciałbym je ze sobą "wymieszać" i otrzymać wynik w formie:

  • banany Rumia,
  • Pomidory Sopot
  • chleb Warszawa
    ...

Czyli wymieszać miasto z produktem.
W momencie gdy zabraknie jakiegoś produktu lub miasta - to chciałbym wyświetlić tylko jeden element.

Wie ktoś może jak to zrobić?

0

1.Sprawdź length 1 tablicy i length 2 tablicy.
2. Losuj w pętli dwie liczby z przedziału od 0 do length 1 lub 2.
3. Pobierz element z tablicy 1 i odpowiednio z 2 od tej liczby i przypisz je do czegoś $miasta[$random_1], $prodykty[$random2]
3. Dodaj te stringi czy co tam chcesz już z tym zrób :P

Możesz to wrzucić w for'a i przeprowadzić taką operacją z góry założoną ilość razy, lub jeżeli chcesz bez powtórzeń, to musisz gdzieś przechowywać indexy już wylosowane i zrobić pętlę while tak długo jak są jeszcze elementy, które nie są w tablicy $jużWylosowane_1 $jużWylosowane_2

1

Przecież miasta i produkty są w losowej kolejności. Nie wystarczy połączyć pierwszego z pierwszym, drugiego z drugim,...?
Możesz też wywołać wpierw funkcje shuffle na tablicach i łączyć pierwszy z pierwszym...

1 użytkowników online, w tym zalogowanych: 0, gości: 1