Skocz do zawartości

losowy element?


Delta
 Udostępnij

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

Komora normobaryczna montaż -> Normobaria budowa i instalacja komory normobarczynej i jej hydrauliki.

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 :)

Edytowane przez Veal

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

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • 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