Помогите разобрать код по полочкам для понимания написанного

136
01 декабря 2017, 06:49

Из изначальных массивов выведен новый массив с наименованием животных только из 2-х слов. Далее, выведены названия животных, где 1ое слово остается на своем месте, а 2ое рандомно присваивается к другому. Помогите разжевать код, для чего, зачем. Больше интересует вывод массива с наименованиями в 2 слова.

<?php
$continents = [
    'Africa' => [
        'African elephant',
        'Crocodile',
        'Spotted hyena',
        'Zebra',
        'Chimpanzee',
        'Python',
        'Scorpio',
        'Canna',
    ],
    'Eurasia' => [
        'Tapir',
        'Snow leopard',
        'Varan',
        'Big panda',
        'Capercaillie',
        'Pheasant',
        'Mantis',
        'Brown bear'
    ],
    'Antarctida' => [
        'Aptenodytes forsteri',
        'Pygoscelis adeliae',
        'Mirounga angustirostris',
        'Eubalaena australis',
        'Phocoena dioptrica'
    ]
];
$name_two_words = [];
foreach($continents as $continent => $animals){
    foreach($animals as $animal){
        $all_animals= [] ;
        $anim = explode(' ', $animal);
        $all_animals[]=$anim;
        foreach($all_animals as $k){
            if(count($k) === 2){
                $comma_separated = implode(",", $k);
                $str = str_replace(',', ' ', $comma_separated);
                $name_two_words[]=$str;
            }
        }
    }
}

echo '<pre>';
var_dump($name_two_words);
echo '<pre>';

foreach($name_two_words as $name){
    $parts = explode(' ', $name);
    $first[] = $parts[0];
    $second[] = $parts[1];
}
$random_first_word = [];
while (count($random_first_word) < count($name_two_words)){
   $proverka = $first[rand(0, count($name_two_words)-1)];
    if (!in_array($proverka, $random_first_word)) {
        array_push($random_first_word, $proverka);
    }
}
//var_dump($random_first_word);
$random_second_word = [];
while (count($random_second_word) < count($name_two_words)){
    $proverka = $second[rand(0, count($name_two_words)-1)];
    if (!in_array($proverka, $random_second_word)) {
        array_push($random_second_word, $proverka);
    }
}
//var_dump($random_second_word );
$final_result = [];
for($i = 0; $i < count($name_two_words); $i++){
    $final_result[]= $random_first_word[$i] . ' ' . $random_second_word[$i];  
}
var_dump($final_result);
READ ALSO
ajax запрос в базу данных

ajax запрос в базу данных

Доброго времени суток всем есть скрипт добавления в БД с помощью ajax,

173
Кастомный метод wordpress rest-api

Кастомный метод wordpress rest-api

Как можно создать свой кастомный эндпоинт для Wordpress RestAPI?

182
Проблема RedBeanPHP

Проблема RedBeanPHP

Всем привет

180
php сравнить адрес страницы

php сравнить адрес страницы

Хочу сравнить адрес текущей страницы с адресом страницы заданным в переменной и выполнить if, но ничего не происходит

141