加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

以相同的方式洗牌2个php阵列

发布时间:2020-12-13 13:38:01 所属栏目:PHP教程 来源:网络整理
导读:我有这个例子: $array['one'][0] = 0;$array['one'][1] = 1;$array['one'][2] = 2;$array['one'][3] = 3;$array['two'][0] = 00;$array['two'][1] = 11;$array['two'][2] = 22;$array['two'][3] = 33; 我怎样才能将它们混合起来以获得类似的东西: $array['
我有这个例子:
$array['one'][0] = 0;
$array['one'][1] = 1;
$array['one'][2] = 2;
$array['one'][3] = 3;

$array['two'][0] = 00;
$array['two'][1] = 11;
$array['two'][2] = 22;
$array['two'][3] = 33;

我怎样才能将它们混合起来以获得类似的东西:

$array['one'][0] = 2;
$array['one'][1] = 1;
$array['one'][2] = 3;
$array['one'][3] = 0;

$array['two'][0] = 22;
$array['two'][1] = 11;
$array['two'][2] = 33;
$array['two'][3] = 00;

或者任何其他随机顺序,但两者中都有相同的“随机因素”?

例如,我希望$array [‘one’] [0]和$array [‘two’] [0]得到洗牌以获得$array [‘one’] [x]和$array [‘two’] [ x](x是随机密钥,但两个阵列上的SAME).

像这样的东西可以工作.它类似于Mimikry的答案,除非你碰巧在数组1中有重复的值(这一个不使用数组1的值作为临时数组的键),否则它将起作用.

假设两个阵列的大小相同.

$c = count($array['one']);
$tmp = array();
for ($i=0; $i<$c; $i++) {
  $tmp[$i] = array($array['one'][$i],$array['two'][$i]);
}
shuffle($tmp);
for ($i=0; $i<$c; $i++) {
  $array['one'][$i] = $tmp[$i][0];
  $array['two'][$i] = $tmp[$i][1];
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读