Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. <?php
  2. error_reporting(E_ALL);
  3. //исходный массив
  4. $animalsWorld = [
  5. 'Africa'=>['mammuthus columbi', 'african buffalo', 'hippo', 'bongo', 'african savannah hare', 'african elephant', 'bat-eared Fox', 'african wild dog', 'stenocara gracilipes', 'Tsetse', 'african vulture'],
  6. 'Asia'=>['bear sloth', 'asian leopard cat', 'saiga', 'Indian rhinoceros', 'clouded leopard', 'asiatic lion', 'snow leopard', 'red wolf', 'nilgau', 'bearded pig'],
  7. 'Europe'=>['polar bear', 'alpine mountain goat', 'snowy owl', 'fox', 'red deer', 'brown bear', 'wild rabbit', 'glennamaddy seal', 'forest shrew']
  8. ];
  9. $space = ' ';
  10. //перебор исходного массива и поиск слов с двойным названием
  11. foreach($animalsWorld as $continent => $animals) {
  12. //echo "<h1>$continent</h1>";
  13. foreach($animals as $animal){
  14. if(substr_count($animal, $space) == 1){
  15. $animalsDoubleWord[] = $animal;
  16. }
  17. $spacePositionAnimal = strpos($animal, $space);
  18. //создание массива из первых и массива из вторых слов
  19. foreach($animalsDoubleWord as $animalDoubleWord){
  20. $spacePosition = strpos($animalDoubleWord, $space);
  21. $firstWords[] = substr($animalDoubleWord, 0, $spacePosition); //массив из первых слов
  22. $lastWords[] = substr($animalDoubleWord, ($spacePosition+1), strlen($animalDoubleWord)); //массив из вторых слов
  23. }
  24. //перемешивание первых и вторых слов и создание массива фантастических животных
  25. for($i = 0; $i < count($animalsDoubleWord); $i++){
  26. $randomIndexFirstWord = rand(0, (count($firstWords)-1));
  27. $randomFirstWord = $firstWords[$randomIndexFirstWord]; // первое случайное слово
  28. $randomIndexlastWord = rand(0, (count($lastWords)-1));
  29. $randomlastWord = $lastWords[$randomIndexlastWord]; // второе случайное слово
  30. $newRandomWord = $randomFirstWord . ' ' . $randomlastWord; //название нового животного
  31. $fantasticAnimals[$i] = $newRandomWord; //наполнение массива новыми фантастическими животными
  32. }
  33. }
  34. }
  35.  
  36.  
  37. foreach($animalsWorld as $continent => $animals) {
  38. foreach($animals as $animal){
  39. if(substr_count($animal, $space) == 1){
  40. $spacePositionAnimal = strpos($animal, $space);
  41. $compareSourceWord = substr($animal, 0, $spacePositionAnimal);//первое слово исходного массива, с которым буду сравнивать слова из массива с фантаст. животными
  42. //echo '1 ' . $compareSourceWord . '<br>';
  43. }
  44. }
  45. foreach($fantasticAnimals as $fantasticanimal){
  46. $spacePositionFantasticAnimal = strpos($fantasticanimal, $space);
  47. $firstFantasticWord = substr($fantasticanimal, 0, $spacePositionFantasticAnimal);
  48. //echo $firstFantasticWord . '<br>';
  49. if($compareSourceWord == $firstFantasticWord){
  50. $xxx[$continent][] = $fantasticanimal;
  51. }
  52. }
  53. }
  54. echo '<pre>';
  55. print_r($xxx);
  56. echo '</pre>';
  57. ?>
  58. <!doctype html>
  59. <html lang="en">
  60. <head>
  61. <meta charset="UTF-8">
  62. <title>PHP 1-3</title>
  63. </head>
  64. <body>
  65. <h2>Исходный массив</h2>
  66. <?php foreach($animalsWorld as $continent=> $animals){//вывод исходного массива ?>
  67. <h3><?= $continent ?></h3>
  68. <?php foreach($animals as $animal){ ?>
  69. <p><?= $animal ?></p>
  70. <?php } ?>
  71. <?php } ?>
  72. <hr>
  73.  
  74. <h2>Массив из двух слов</h2>
  75. <?php foreach($animalsDoubleWord as $animalDoubleWord){ ?>
  76. <p><?= $animalDoubleWord ?></p>
  77. <?php } ?>
  78. <hr>
  79.  
  80. <h2>Массив фантастических животных</h2>
  81. <?php foreach($fantasticAnimals as $fantasticanimal){ ?>
  82. <p><?= $fantasticanimal ?></p>
  83. <?php } ?>
  84. <hr>
  85.  
  86. <h2>Животные через запятую</h2>
  87. <?php foreach($xxx as $continent => $yyy){//вывод исходного массива ?>
  88. <h3><?= $continent ?></h3>
  89. <p><?= implode(', ', $yyy); ?></p>
  90. <?php } ?>
  91. </body>
  92. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement