W pewnym momencie mojej przyjaźni z językiem PHP doszedłem do wniosku, iż jest on takim trochę hipsterem pomiędzy językami programowania. Oczywiście wielu kolegów (i koleżanek 🙂 ) programistów nie uznaje języka PHP za język programowania ale moje porównanie nie ma na celu dostarczenia kolejnego argumentu do tej akurat „dyskusji” 😉
Moje pojęcie o hipsterach ogranicza się do określenia, że znali/robili coś zanim to „coś” stało się „modne”. Jak to można odnieść do PHP? Otóż język ten dysponuje tak dużą liczbą najróżniejszych funkcji, klas, stałych, itp., że zdarzało mi się łapać na rozpracowywaniu jakiegoś „problemu”, co do którego później okazywało się, że został już rozwiązany przy pomocy jakiejś funkcji. Mówiąc inaczej – PHP rozwiązało problem osobną funkcją zanim ten stał się dla mnie „modny” 😉 Jedną z takich funkcji, którą chciałbym się w tym wpisie podzielić jest shuffle, której dokumentację możemy znaleźć tutaj.
Co takiego interesującego robi wspomniana przeze mnie funkcja? Otóż ustawia ona elementy podanej tabeli w losowej kolejności. Jeśli ktoś poczuł się zaskoczony w jaki sposób taka funkcja może być w ogóle komukolwiek przydatna to pozwolę sobie opowiedzieć krótką historię pewnego pracownika w Dziale Obsługi klienta 🙂
W Dziale Obsługi Klienta pewnej firmy pracowało kilka osób, których zadaniem było odpowiadanie na maile oraz odbieranie telefonów od klientów. Dział ten miał jeden numer udostępniony klientom a centrala kierowała rozmowę do pierwszej wolnej w danej chwili osoby. Ponieważ ilość telefonów dla każdego pracownika rozkładała się w miarę równomiernie to nikt nie narzekał, że ma więcej pracy od innych. Pewnego dnia manager działu wpadł na pomysł aby przydzielić każdemu z pracowników oddzielny numer telefonu i wskazać wszystkie w sekcji kontaktu na stronie www firmy. Aby nikogo specjalnie nie wyróżniać wpadł na pomysł, że sprawiedliwie będzie posortować listę pracowników alfabetycznie. Jak nietrudno się domyślić w dniu kiedy zaktualizowano stronę www zaczęły się problemy…
Jak myślisz drogi czytelniku, który pracownik Działu Obsługi Klienta był najbardziej „atakowany” przez klientów? Jeśli jeszcze na to nie wpadłeś to podpowiadam – natura ludzka jest niestety (lub stety) taka, że większość dzwoniących będzie wybierać pierwszy numer z listy. Oznacza to, iż najbardziej na tej zmianie ucierpi osoba, której nazwisko było pierwsze na liście. Mamy więc przy okazji ciekawy przykład na to, iż „odpowiednie” nazwisko nie zawsze może wiązać się z jakimiś profitami 😉
Czy można jakoś pomóc naszemu pracownikowi? Otóż okazuje się, że tak. Jeśli zapiszemy sobie dane kontaktowe w postaci tabelki, to możemy przy pomocy wspomnianej wyżej funkcji shuffle każdorazowo wyświetlać ją w innej kolejności. Jeśli więc macie w swojej firmie dział podobny do opisanego powyżej to nie wahajcie się przyjść z pomocą temu jednemu „uciśnionemu”. Poniżej pokazuję przykładowy „gotowiec” jak by to mogło wyglądać w praktyce (imiona i nazwiska oraz numery telefonów wewnętrznych są oczywiście zmyślone a ich ewentualna zbieżność z prawdziwymi osobami jest wyłącznie przypadkowa 🙂 ).
$pracownicy = [ 'Alojzy Milczyński, wew. 101', 'Aneta Mikuszewicz, wew. 102', 'Bogdan Zagidrzyński, wew. 103', 'Monika Berdyczyńska, wew. 104', 'Kamil Gondartowski, wew. 105' ]; shuffle($pracownicy); var_dump($pracownicy);
Prezentowanie wyniku działania tego skryptu oczywiście nie ma sensu, gdyż każde jego wywołanie da inny rezultat. Zachęcam również do samodzielnej „zabawy” i ewentualnego wykorzystania tej funkcji we własnym kodzie 🙂