Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果值相同,则拆分数组值_Php_Arrays_Shuffle - Fatal编程技术网

Php 如果值相同,则拆分数组值

Php 如果值相同,则拆分数组值,php,arrays,shuffle,Php,Arrays,Shuffle,我有一个PHP数组,其中包含一组用户。每个用户都属于一个团队。阵列将如下所示 $Array=Array('User1','User2','User3','User4','User5') 我需要达到以下逻辑 如果“User1”和“User2”属于同一个名为“Team1”的团队,而其他用户拥有单独的唯一团队,则应按如下所示对阵列重新排序 $Array=Array('User1','User3','User4','User5','User2') 如果“User1”和“User2”属于同一个名为“Tea

我有一个PHP数组,其中包含一组用户。每个用户都属于一个团队。阵列将如下所示

$Array=Array('User1','User2','User3','User4','User5')

我需要达到以下逻辑

如果“User1”和“User2”属于同一个名为“Team1”的团队,而其他用户拥有单独的唯一团队,则应按如下所示对阵列重新排序

$Array=Array('User1','User3','User4','User5','User2')

如果“User1”和“User2”属于同一个名为“Team1”的团队,“User3”和“User4”属于同一个名为“Team2”的团队,则数组应按如下顺序重新排序

$Array=Array('User1','User3','User5','User4','User2')

数字是动态的,任何用户都可以拥有任何团队。这样做的目的是最大限度地避免在后续位置使用同一团队的用户。最好尽可能让用户来自同一个团队

我试过很多方法,但都不管用。请帮我解释一下这个逻辑。 如果有人需要更多信息,请告诉我

谢谢
Ram

你的目标不是很清楚。当User1+2和User3+4+5在同一组(我假设:3,1,4,2,5)中时,应该怎么做?当用户2+3+4+5在同一组中时,任何例程都将失败

实现“在后续位置避免来自同一团队的用户”目标的一种方法是:

为组创建数组并收集其用户。用用户最多的组中的第一个用户填充新的用户数组,然后从组数组中删除该用户。然后将当前用户最多但最后使用的组除外的组的第一个用户添加到用户数组中。等等