PHP组合单个阵列

时间:2015-11-05 09:32:20

标签: php arrays

我不确定如何准确地解释我想要做什么,但我尝试用一​​个例子来解释。

$products = array("35","37","43");

如果我有上面的数组,我怎么能创建一个看起来像这样的结果数组。

$related_products = array (

array (35,37),

array (35,43),

array (37,35),

array (37.43),

array (43,35),

array (43, 37) )

2 个答案:

答案 0 :(得分:5)

您可以使用两个循环来捕获所有组合:

$products = array("35","37","43");
$result = array();
for($i = 0; $i < count($products); $i++) {
    for($j = 0; $j < count($products); $j++) {
        if($i !== $j) {
            $result[] = array(
                $products[$i],
                $products[$j]
            );
        }   
    }
}

print_r($result);

结果:

Array
(
    [0] => Array
        (
            [0] => 35
            [1] => 37
        )

    [1] => Array
        (
            [0] => 35
            [1] => 43
        )

    [2] => Array
        (
            [0] => 37
            [1] => 35
        )

    [3] => Array
        (
            [0] => 37
            [1] => 43
        )

    [4] => Array
        (
            [0] => 43
            [1] => 35
        )

    [5] => Array
        (
            [0] => 43
            [1] => 37
        )

)

答案 1 :(得分:0)

你可以使用像这样的array_push方法将一个项添加到主数组中,

$products = array("35","37","43");
$data = array();
for($i = 0; $i < count($products); $i++) {
    for($j = 0; $j < count($products); $j++) {
        if($i !== $j) {
              array_push($data,array($products[$i],$products[$j]));
            );
        }   
    }
}

print_r($data);