Guest User

Untitled

a guest
Jun 13th, 2024
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.85 KB | None | 0 0
  1. <?php
  2. ini_set('error_reporting', E_ALL);
  3. ini_set('display_errors', 1);
  4. ini_set('display_startup_errors', 1);
  5.  
  6. /**
  7.  * Реализовать Тест Струпа
  8.  * - на экран вывести сообщение 5 строк по 5 слов в каждом
  9.  * - цвета|слова - red, blue, green, yellow, lime, magenta, black, gold, gray, tomato
  10.  * - цвет и слово не должны совпадать (например слово lime может быть покрашено в любой из цветов кроме lime), выбор цвета - случайный
  11.  */
  12.  
  13. function key_compare_func($a, $b) {
  14.     if ($a === $b) {
  15.         return 0;
  16.     }
  17.     return ($a > $b) ? 1 : -1;
  18. }
  19.  
  20. $numReq = 5;
  21.  
  22. function setArray($numReq) {
  23.     // array list colors
  24.     $arr = ['red', 'blue', 'green', 'yellow', 'lime', 'magenta', 'black', 'gold', 'gray', 'tomato'];
  25.  
  26.     // array random & get num value
  27.     $shuffle = array_rand($arr, $numReq);
  28.     // empty array
  29.     $newArr = [];
  30.     // pars random value
  31.     foreach ($shuffle as $value) {
  32.         // set color in emty array
  33.         $newArr[$value] = $arr[$value];
  34.     }
  35.  
  36.     // diff arrays
  37.     $result = array_diff_uassoc($arr, $newArr, "key_compare_func");
  38.     // sort key
  39.     sort($result);
  40.     // return result
  41.     return [
  42.         'result' => $result,
  43.         'arr' => $arr,
  44.         'shuffle' => $shuffle
  45.     ];
  46. }
  47.  
  48. ?>
  49. <!DOCTYPE html>
  50. <html lang="en">
  51. <head>
  52.     <meta charset="UTF-8">
  53.     <title>Stroop effect</title>
  54. </head>
  55. <body>
  56.  
  57. <?php for ($i = 0; $i < $numReq; $i++): ?>
  58.     <?php $result = setArray($numReq); ?>
  59.     <p>
  60.         <?php for ($j = 0; $j < $numReq; $j++): ?>
  61.             <span style="color: <?= $result['result'][$j]; ?>"><?= $result['arr'][$result['shuffle'][$j]]; ?></span>
  62.         <?php endfor; ?>
  63.     </p>
  64. <?php endfor; ?>
  65.  
  66. </body>
  67. </html>
Advertisement
Add Comment
Please, Sign In to add comment