2017-11-15 25 views
1

PHP配列のキーと値をランダムにシャッフルしたい。私はすでに注文をシャッフルするソリューションを見つけましたが、キーと値をシャッフルしたいと思っています。シャッフル配列のキーと値php

アレイarray('yes' => 'oui', 'no' => 'non', 'hello' => 'bonjour')は、たとえばarray('oui' => 'yes, 'no' => 'non', 'bonjour' => 'hello')になります。最初と最後の値は、キーと値をランダムに入れ替えたことに注意してください。

array_flipを使用すると、配列内のキーと値を反転できます。しかし、これはフリップするすべてキーと値をランダムにいくつかのキーと値を反転したい。どうすればいい?

+0

あなたはそれらのN-X上array_flipを行い、その後、ランダムな長さでNアレイに配列を分割し、それらをマージし、再びマージされた配列をシャッフルすることができますか? –

+0

はそうかもしれません:https://eval.in/900559 – splash58

答えて

1
$array = array('yes' => 'oui', 'no' => 'non', 'hello' => 'bonjour'); 

foreach($array as $key => $value) { 
    if (0 === rand(0,1)) { 
     $array[$value] = $key; 
     unset($array[$key]); 
    } 
} 
1
$array = array('yes' => 'oui', 'no' => 'non', 'hello' => 'bonjour'); 

// Run it in a foreach loop 
foreach ($array as $key => $val){ 
    // rand(0, 1) will return either 0 or 1 
    // It's up to you which value you want to set as anchor. 
    if (rand(0, 1) === 0){ 
     // Set the value as key, 
     // then set the key as value. 
     $array[$val] = $key; 

     // Delete the original one. 
     unset($array[$key]); 
    } 
} 
関連する問題