gpt4 book ai didi

php 从给定数组生成所有组合

转载 作者:可可西里 更新时间:2023-10-31 22:44:21 26 4
gpt4 key购买 nike

转换此 PHP 数组的最简单方法是什么

$a = array('A' => array(1, 2),
'B' => array(3, 4),
'C' => array(5));

进入这个:

$result = array(
array('A' => 1, 'B' => 3, 'C' => 5),
array('A' => 1, 'B' => 4, 'C' => 5),
array('A' => 2, 'B' => 3, 'C' => 5),
array('A' => 2, 'B' => 4, 'C' => 5),
);

$a 可能有许多不同的 keys 我在开发期间不知道。所以我需要生成给定数组中的所有组合。

更新:

我必须根据传入数组生成 URL。所以我不知道在开发期间我会得到多少参数。我只有参数数组,它可以是例如

$a = array('A' => array(5,3, 1));

结果将是:

$result = array(
array('A' => 5),
array('A' => 3),
array('A' => 1));

$a = array('X' => array(5), 'D' => array(4, 7));

结果将是:

$result = array(
array('X' => 5, 'D' => 4),
array('X' => 5, 'D' => 7));

最佳答案

像这个:

$a = array('A' => array(1, 2),
'B' => array(3, 4),
'C' => array(5));

function get_combinations($arrays) {
$result = array(array());
foreach ($arrays as $property => $property_values) {
$tmp = array();
foreach ($result as $result_item) {
foreach ($property_values as $property_value) {
$tmp[] = array_merge($result_item, array($property => $property_value));
}
}
$result = $tmp;
}
return $result;
}

输出

var_dump(get_combinations($a));

array (size=4)
0 =>
array (size=3)
'A' => int 1
'B' => int 3
'C' => int 5
1 =>
array (size=3)
'A' => int 1
'B' => int 4
'C' => int 5
2 =>
array (size=3)
'A' => int 2
'B' => int 3
'C' => int 5
3 =>
array (size=3)
'A' => int 2
'B' => int 4
'C' => int 5

关于php 从给定数组生成所有组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17942318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com