PHP将数据匹配到数组中

thi*_*ery 5 php

我不确定是否有某种PHP功能可以帮助我简单地做到这一点.我想我会问.

假设我有5个产品[prod1,prod2,prod3,prod4,prod5]

所有这些产品都是相互关联的,所以我需要得到这样的东西:

prod1, prod2, prod3, prod4, prod5

prod2, prod3, prod4, prod5, prod1

prod3, prod4, prod5, prod1, prod2

prod4, prod5, prod1, prod2, prod3

prod5, prod1, prod2, prod3, prod4

echo,保存为变量,对我来说没关系.

在我的例子中,我说5,但实际上可能有任意数量的产品.是否有一个功能可以自动执行n产品?我甚至不知道该怎么称呼它,然后我将它们匹配在一起.

jh3*_*314 8

你可以这样做:

$arr = array($prod1, $prod2, $prod3, $prod4, $prod5);

for ($i = 0; $i < count($arr); $i++) {
    array_push($arr, array_shift($arr));
    print_r($arr);
}
Run Code Online (Sandbox Code Playgroud)

  • 简单而实用......我喜欢它. (2认同)

小智 0

另一个解决方案:

$array = array('$prod1', '$prod2', '$prod3', '$prod4', '$prod5');

$result  = array();
for ($i = 0; $i < count($array); $i++) {
    $result[] = array_merge( array_slice($array, $i), array_slice($array, 0, $i)  );
}
print_r($result);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => Array
        (
            [0] => $prod1
            [1] => $prod2
            [2] => $prod3
            [3] => $prod4
            [4] => $prod5
        )

    [1] => Array
        (
            [0] => $prod2
            [1] => $prod3
            [2] => $prod4
            [3] => $prod5
            [4] => $prod1
        )

    [2] => Array
        (
            [0] => $prod3
            [1] => $prod4
            [2] => $prod5
            [3] => $prod1
            [4] => $prod2
        )

    [3] => Array
        (
            [0] => $prod4
            [1] => $prod5
            [2] => $prod1
            [3] => $prod2
            [4] => $prod3
        )

    [4] => Array
        (
            [0] => $prod5
            [1] => $prod1
            [2] => $prod2
            [3] => $prod3
            [4] => $prod4
        )

)
Run Code Online (Sandbox Code Playgroud)