Чтобы поменять местами наибольшее и наименьшее числа в массиве, сначала нужно найти их индексы. После этого произведем обмен значениями по этим индексам.
Давайте сначала напишем код на PHP, который создает массив из 5 случайных чисел от 0 до 10 и выводит его на экран:
```php
<?php
// Создаем массив из 5 случайных чисел от 0 до 10
$numbers = array();
for ($i = 0; $i < 5; $i++) {
$numbers[] = rand(0, 10);
}
// Выводим массив на экран
echo "Исходный массив: ";
print_r($numbers);
// Ищем в массиве наибольшее и наименьшее значения
$maxValue = max($numbers);
$minValue = min($numbers);
// Выводим найденные значения
echo "Наибольшее значение: {$maxValue}\n";
echo "Наименьшее значение: {$minValue}\n";
?>
```
Теперь, чтобы поменять местами наибольшее и наименьшее числа в массиве, добавим следующий код:
```php
// Находим индексы максимального и минимального элементов
$maxIndex = array_search($maxValue, $numbers);
$minIndex = array_search($minValue, $numbers);
// Меняем местами максимальное и минимальное значения
$temp = $numbers[$maxIndex];
$numbers[$maxIndex] = $numbers[$minIndex];
$numbers[$minIndex] = $temp;
// Выводим измененный массив на экран
echo "Массив после обмена наибольшего и наименьшего значений: ";
print_r($numbers);
```
Итоговый код может выглядеть так:
```php
<?php
// Создаем массив из 5 случайных чисел от 0 до 10
$numbers = array();
for ($i = 0; $i < 5; $i++) {
$numbers[] = rand(0, 10);
}
// Выводим массив на экран
echo "Исходный массив: ";
print_r($numbers);
// Ищем в массиве наибольшее и наименьшее значения
$maxValue = max($numbers);
$minValue = min($numbers);
// Выводим найденные значения
echo "Наибольшее значение: {$maxValue}\n";
echo "Наименьшее значение: {$minValue}\n";
// Находим индексы максимального и минимального элементов
$maxIndex = array_search($maxValue, $numbers);
$minIndex = array_search($minValue, $numbers);
// Меняем местами максимальное и минимальное значения
$temp = $numbers[$maxIndex];
$numbers[$maxIndex] = $numbers[$minIndex];
$numbers[$minIndex] = $temp;
// Выводим измененный массив на экран
echo "Массив после обмена наибольшего и наименьшего значений: ";
print_r($numbers);
?>
```
Код оптимизирован в том смысле, что все операции проводятся в рамках обычного прохода, и не требуется дополнительных циклов для нахождения и обмена значений.