【发布时间】:2013-01-16 22:03:06
【问题描述】:
在工作了将近一整天后,我的大脑陷入了如何解决这个问题的想法中。一个例子。
- 1,
- x,
- 2,
- 1x,
- 1,
- 2,
- x,
- 1,
- 2,
- 1,
- x,
- x,
- 1..
这是一张优惠券,我希望按照组合的可能性对其进行排序假设这张优惠券有两种可能性: 1x2112x121xx1, 1x2x12x121xx1..第四场比赛不一样..
所以...我的问题是如何以编程方式完成。
我从数据库中获取数据,它看起来像这样。
array(
"gameNumber" => "1",
"bets" => array(
[0] => "1"
),
"gameNumber" => "2",
"bets" => array(
[0] = "x"
),
"gameNumber" => "3",
"bets" => array(
[0] = "2"
),
"gameNumber" => "4",
"bets" => array(
[0] = "1",
[1] = "x"
)
);
我不确定这会对你有帮助,但看起来就是这样。
在最后一个答案的帮助下,我已将其全部放入一个递归数组中: How to build recursive function to list all combinations of a multi-level array?.
所以我的新递归函数如下所示:
public function _combine_bets($array)
{
$cur = array_shift($array);
$result = array();
if(!count($array)) {
foreach($cur['bets'] as $option) {
$result[] = $cur['matchNumber']."-".$option;
}
return $result;
}
foreach($cur['bets'] as $bet) {
$result[$cur['matchNumber'].'-'.$bet] = $this->_combine_bets($array);
}
return $result;
}
这样我得到了这个数组: http://pastie.org/5692408
Soo..... 回到我的问题,我想让这看起来只是赌注的价值.. 假设它应该看起来像这样:1x2112x121xx1、1x2x12x121xx1。而不是一个大数组。我需要为所有可能性做这个,这是一张只有两种不同可能性的优惠券,但是.. 它可以更多。
用户可以在比赛中选择 1,x,2,1x,12,x2,1x2 我的意思是用户在 13 种不同游戏中的所有选项,
如果您需要更多信息,请告诉我,我会更新此信息..
【问题讨论】:
标签: php codeigniter recursion