【问题标题】:Shuffle array key and values php随机播放数组键和值php
【发布时间】:2017-11-15 11:06:32
【问题描述】:

我想随机打乱一个 php 数组的键和值。我已经找到了打乱顺序的解决方案,但我想自己打乱键和值。

例如,数组array('yes' => 'oui', 'no' => 'non', 'hello' => 'bonjour') 将变为array('oui' => 'yes, 'no' => 'non', 'bonjour' => 'hello')。请注意,第一个值和最后一个值随机交换了键和值。

我知道您可以使用array_flip 翻转数组中的键和值。但这会翻转 所有 键和值,而我想随机翻转一些键和值。我该怎么做?

【问题讨论】:

  • 您可以将数组拆分为N个随机长度的数组,然后对其中的N-X个数组进行array_flip,然后将它们合并并再次打乱合并后的数组?
  • 可能是,所以:eval.in/900559

标签: php arrays


【解决方案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]);
    }
}

【讨论】:

    【解决方案2】:
    $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]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      相关资源
      最近更新 更多