工作了几乎整整一天后,我的大脑陷入了我自己关于如何解决这个问题的想法。一个例子。多维数组中的过滤器可能性PHP/Codeigniter
- 1,
- X,
- 2,
- 1X,
- 1,
- 2,
- X,
- 1,
- 2,
- 1,
- X,
- X,
- 1 ..
这是一张优惠券,我希望它后组合的可能性进行排序,让我们说这个优惠券有2个可能的是: 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
洙.....回到我的问题,我想使这看起来只是赌注的价值。让我们说它应该看起来像这样:1x2112x121xx1,1x2x12x121xx1。而不是一个大阵。我需要为所有可能性做到这一点,这仅仅是两种不同的可能性的优惠券,但是..它可以更多。
用户可以选择1,X,2,1x,12,上一场比赛我的意思是,这是一个用户有13个不同游戏的所有选项x2,1x2,
,如果你需要更多的信息,只是告诉我,我会更新这个..
我想你是在误解我的问题。如果我使用你的功能,我会在第四场比赛中获得1次。这就是它会让我回来,它会给我每场比赛的赌注。 我希望优惠券行回到我这里: array( 0 =>'1x2112x121xx1', 1 =>'1x2x12x121xx1' ); – murum
并且您将返回的优惠券是每个matchNumber的投注?如果阵列没有正确的游戏编号,那么投注将被忽略? – Ms01