以相同的方式洗牌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]; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |