Skocz do zawartości

losowy element?


Delta

Rekomendowane odpowiedzi

Nie wiem o co tu chodzi ;)

Zainteresuj się funkcją

https://php.net/manual/en/function.shuffle.php

<?php

$data = array(1,2,3,4,5,6);

shuffle($data );

echo 'Losowa liczba to '.$data[0];

?>

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Koledze chyba chodziło o jednolinijkowy kod zwracający losowy element z tablicy... ;) Nie mam pojęcia po co komuś coś takiego ale jako ciekawostka podaje przykład z podanego kodu :P

echo $data[rand(0, count($data=array(1,2,3,4,5,6)) - 1)];

Na emeryturze po SEO zajmuję się R&D.

Odnośnik do komentarza
Udostępnij na innych stronach

Koledze chyba chodziło o jednolinijkowy kod zwracający losowy element z tablicy... ;) Nie mam pojęcia po co komuś coś takiego ale jako ciekawostka podaje przykład z podanego kodu :P

echo $data[rand(0, count($data=array(1,2,3,4,5,6)) - 1)];

Tak, właśnie o to mi chodziło - jednolinijkowy kod. A potrzebne mi to było do mieszania słów w zdaniach. Mam np. Tekst w postaci:

Mam {niebieski|zielony} rower, który jeździ bardzo {szybko|wolno}.

Nie wiedziałem jak napisać skrypt losujący z takiej postaci, więc edytorem tekstu chciałem zastąpić

"{" na "$data[rand(0, count($data=array("

"|" na ","

"}" na ")) - 1)];"

i da to oczekiwany efekt. chociaż jak widać jest to rozwiązanie niezbyt profesjonalne.

Może poradzicie jak można inaczej losować synonimy z takiej postaci?

Odnośnik do komentarza
Udostępnij na innych stronach

Może poradzicie jak można inaczej losować synonimy z takiej postaci?

Przy użyciu preg_replace_callback dla każdego znalezionego wyrażenia pasującego do wzorca {x} wywołać funkcje która explode'uje x i zwróci losowy element uzyskanej w ten sposób tablicy.

Zapewne coś w stylu:

function losowy('|', $_arg) {
  $tmp = explode ($_arg[1]);
  shuffle($tmp);
  return $tmp[0];
}

function parsuj($_arg) {
  return preg_replace_callback ('/\{(.*)\}/', 'losowy', $_arg);
}

echo parsuj('Mam {niebieski|zielony} rower, który jeździ bardzo {szybko|wolno}.');

...ale nie chce mi się sprawdzać czy ten kod działa :)

Na emeryturze po SEO zajmuję się R&D.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności