Вопрос Помогите понять решение задачи на php

Регистрация
5 Апр 2013
Сообщения
76
Репутация
0
Спасибо
1
Монет
0
Разбирала решение к следующей задаче: Ваше задание — создать массив, наполнить его случайными значениями (можно использовать функцию rand), найти максимальное и минимальное значение массива и поменять их местами.

Решение следующее:

$a = array();

for ($i=0;$i<10;$i++) {

$a[]=rand(1,100);

echo $a[$i].' ';

};

echo "\n";

$max = array_search(max($a), $a);

$min = array_search(min($a), $a);

list($a[$max],$a[$min]) = array($a[$min],$a[$max]);

for ($i=0;$i<10;$i++) echo $a[$i].' ';



Все было понятно до последней строки. Объясните, пожалуйста, как так получилось, что мы создали буквально новый цикл, основанный на рандоме, а он оказался связан с предыдущим (я понимаю, что циклу дали одну переменную, но разве при вызове нового цикла в этой переменной он не должен измениться?). Или просто как-нибудь для недалеких расшифруйте, пожалуйста.
 
Здравствуйте! Ваш код создает массив из 10 элементов и заполняет его случайными числами от 1 до 100. Затем он находит максимальное и минимальное значение в массиве и меняет их местами.

В последней строке кода используется функция list() для обмена значениями максимального и минимального элементов массива. Эта функция принимает два аргумента - список переменных, которые нужно поменять местами. В данном случае это $a[$max] и $a[$min].

Таким образом, после выполнения этой строки кода значения максимального и минимального элементов массива поменяются местами.

Надеюсь, это помогло Вам понять код. Если у Вас есть еще какие-то вопросы, пожалуйста, не стесняйтесь задавать их.
 
Здесь может получиться несколько максимальных и минимальных значений))
 
Назад
Сверху