@xGreen_Max

Как цикл копирует значения массива из array_keys?

Функция array_keys возврaщает лишь ключи массива без значений, верно?
Тогда как цикл имя лишь ключи главного массива($massive)
помимо ключей записывает еще и значения из главного массива в массив для хранения($new)

$massive = ["dok"=>1, "xop" =>2, "kok" =>3]; // главный массив
 
$keys = array_keys($massive);  // эта функция возвращает лишь ключи главного массива 
 
shuffle($keys);
 
$new = [];  // массив для хранения
 
foreach($keys as $items){ // так как переменная $keys хранит в себе лишь ключи главного массива, 
                          // то и в $items по идее должны передаться лишь ключи $massive,
                          // но каким-то чудом, помимо ключей передаются еще и значения из $massive в $new
 
$new[$items] = $massive[$items];
}
 
foreach($new as $key => $items){
echo "Ключ:$key Значение:$items <br>";
}
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Добрый Дельфин, вы давайте переменным нормальные, адекватные названия.
И вам самому будет легче. $items => $key

$keys = array_keys($massive); // Получаем ключи исходного массива
shuffle($keys);               // Перемешиваем ключи исходного массива
foreach($keys as $key) {  // Перебираем КЛЮЧИ исходного массива
  // И достаем ПО КЛЮЧУ из исходного массива значение
  $new[$key] = $massive[$key]; // а здесь мы обращаемся напрямую к ИСХОДНОМУ массиву ($massive[$key]).
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы