【发布时间】:2020-11-05 06:51:41
【问题描述】:
我正在尝试将关联数组简化为成对的唯一值,其中键是要配对的字母,值是它们的 count()s。
每对不能包含两次相同的字母,例如AA 或BB。
允许同一对出现多次。
例如AC、DC、AC、DC 在结果数组中都有效
每选中一个字母,其关联的数字就会减一,直到一个字母都没有,或者
任何奇数/剩余的字母都应该被标记并且不能被忽略,例如Array([paired]=>Array(...) [unpaired]=>Array(...))
示例输入:
Array(
[A] => 8
[B] => 16
[C] => 15
[D] => 4
[E] => 1
)
可能的输出:
[
'paired' => [
'BD', 'AE', 'BC', 'AC', 'BC', ...
],
'unpaired' => [
'C' => 4
]
]
我希望随机选择两个唯一的字母,但如果这太难了,那么结果数组应该很容易shuffle()-able
我尝试过array_reduce()、array_map()、array_walk()、array_unique()等的各种组合,甚至是Pear的Math_Combinatorics,但都无济于事。
【问题讨论】:
-
我假设您在这里需要一个函数,也许您可以添加一些示例来说明预期结果。 myFunc(
) = -
是的,可以是函数,也可以是内置数组函数的组合。预期的结果将是具有两个不同字母的字符串数组
标签: php arrays recursion unique reduction