Задать вопрос
@xGreen_Max

Как изменять значения ключей массива при перемешке?

Данный код создает ассоциативный массив из набора переменных, а затем перемешивает их в случайном порядке.
По идее, имена ключей элементов массива должны быть как у имен переменных из которых они созданы.
Но функция shuffle делает имена ключей элементов массива стандартными(то есть 0,1,2,3,4)

Как сделать так, чтобы функция shuffle перемешивала массив при этом не меняла значения его ключей?

$one = 3;
$two = 4;
$three = 5;
$four = 6;
$five = 7;


function random($mass){
shuffle($mass);
return $mass;
};

$consolidate = random(compact("one", "two", "three", "four", "five"));  
	
	
foreach($consolidate as $key => $items){
echo "$items имеет индекс = $key <br>";
}
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
$one = 3;
$two = 4;
$three = 5;
$four = 6;
$five = 7;

$consolidate = random(compact("one", "two", "three", "four", "five"));

foreach($consolidate as $key => $items) {
    echo "$items имеет индекс = $key <br>";
}

function random($mass) {
    $rand_key = array_rand($mass, 1);
    return [$rand_key => $mass[$rand_key]];
}
Ответ написан
v3shin
@v3shin
Веб-шаман
function random($mass){
	$keys = array_keys($mass);
	shuffle($keys);
	$return = [];
	foreach($keys as $key) {
		$return[$key] = $mass[$key];
	}
	return $return;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽