【发布时间】:2014-09-12 17:18:31
【问题描述】:
我需要一些帮助来为我的函数生成输入。
我有两组数组:
产品:
$products = array('prod_1'=>1,'prod_2'=>1,'prod_3'=>1,'prod_4'=>1);
价格:
$prices = array(1,2,3);
我想要得到的是一个循环,它将输出由 $prices 填充的 $products 数组的所有可能组合:
示例输出
# array('prod_1'=>1,'prod_2'=>1,'prod_3'=>1,'prod_4'=>1);
# array('prod_1'=>2,'prod_2'=>1,'prod_3'=>1,'prod_4'=>1);
# array('prod_1'=>1,'prod_2'=>2,'prod_3'=>1,'prod_4'=>1);
# array('prod_1'=>1,'prod_2'=>1,'prod_3'=>2,'prod_4'=>1);
# array('prod_1'=>1,'prod_2'=>1,'prod_3'=>1,'prod_4'=>2);
...
# array('prod_1'=>1,'prod_2'=>2,'prod_3'=>2,'prod_4'=>1);
...
# array('prod_1'=>2,'prod_2'=>3,'prod_3'=>1,'prod_4'=>1);
...
#1 array('prod_1'=>3,'prod_2'=>1,'prod_3'=>3,'prod_4'=>2);
etc.
更新 1
在我看来,它应该像时钟一样工作:
- 将 $products 中的所有值设置为 $prices 中的第一个值
- Loop 认为 $prices 中 $products['prod_1'] 的所有值
- 当您将 $products['prod_1'] 设置为 $prices[0] 并为 $products['prod_2'] (index+1) 执行第 2 点时
- 执行第 2 点和第 3 点并执行 index+1,重置 prev,直到所有 $products 值都设置为最后一个 $prices 值
输出:
1,1,1,1
2,1,1,1
3,1,1,1
1,2,1,1
2,2,1,1
3,2,1,1
1,3,1,1
2,3,1,1
3,3,1,1
1,1,2,1
do it until:
3,3,3,3
我走在正确的轨道上吗?
【问题讨论】:
-
你已经提到了一个循环。试一试并发布尝试。
标签: php arrays algorithm combinations