Задать вопрос
@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>";
}
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 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;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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