Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用键创建数组的所有组合_Php_Arrays - Fatal编程技术网

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,如果你考虑为什么不自己写,然后问是否有更好的方法去做?