Php 使用键创建数组的所有组合
我得到了以下数组:Php 使用键创建数组的所有组合,php,arrays,Php,Arrays,我得到了以下数组: [ 'Key' => 'HP', 'OverrideFinanceParameters' => [ 'Term' => 60, 'Deposit' => 250, 'DepositType' => 'Amount', 'AnnualMileage' => 8000 ] ]; 对于以下4个阵列的所有可能组合,我需要将上述内容添加到另一个阵列中: $pro
[
'Key' => 'HP',
'OverrideFinanceParameters' => [
'Term' => 60,
'Deposit' => 250,
'DepositType' => 'Amount',
'AnnualMileage' => 8000
]
];
对于以下4个阵列的所有可能组合,我需要将上述内容添加到另一个阵列中:
$products = [ 'HP', 'PCP' ];
$terms = [ 12, 24, 36, 48, 60 ];
$deposit = [ 250, 500, 1000, 3000 ];
$mileages = [ 1000, 2000, 3000, 4000 ];
因此,我最终会:
[
[
'Key' => 'HP',
'OverrideFinanceParameters' => [
'Term' => 12,
'Deposit' => 250,
'DepositType' => 'Amount',
'AnnualMileage' => 8000
]
],
[
'Key' => 'HP',
'OverrideFinanceParameters' => [
'Term' => 24,
'Deposit' => 250,
'DepositType' => 'Amount',
'AnnualMileage' => 8000
]
],
[
'Key' => 'HP',
'OverrideFinanceParameters' => [
'Term' => 36,
'Deposit' => 250,
'DepositType' => 'Amount',
'AnnualMileage' => 8000
]
]
]
基本上,您应该循环所有不同的值,并将它们放入最终数组
$resultArray = [];
foreach ($products as $product) {
foreach ($terms as $term) {
foreach ($deposit as $depo) {
foreach ($mileages as $mileage) {
$resultArray[] = [
'Key' => $product,
'OverrideFinanceParameters' => [
'Term' => $term,
'Deposit' => $depo,
'DepositType' => 'Amount',
'AnnualMileage' => $mileage
]
];
}
}
}
}
你试过什么?我想做这件事,但不认为它太干净了,认为可能有更好的方式。我认为你不应该考虑当你有一个很小的数组时的表现,这是最简单的方式。@ MartynBall,如果你考虑为什么不自己写,然后问是否有更好的方法去做?