Rumah > pembangunan bahagian belakang > tutorial php > 详解PHP实现数组的笛卡尔积运算

详解PHP实现数组的笛卡尔积运算

小云云
Lepaskan: 2023-03-17 22:52:01
asal
2357 orang telah melayarinya

本文主要介绍了PHP实现数组的笛卡尔积运算,结合实例形式分析了php数组的笛卡尔积运算相关实现与使用技巧,需要的朋友可以参考下,希望能帮助到大家。

数组的笛卡尔积在实际中还是挺有用处的,比如计算商品的规格时就经常用到,下面写一种实现方式,如下代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

$arr = array(

  array(2),

  array(6,7),

  array('a','b','c')

);

function dikaer($arr){

 $arr1 = array();

 $result = array_shift($arr);

 while($arr2 = array_shift($arr)){

  $arr1 = $result;

  $result = array();

  foreach($arr1 as $v){

   foreach($arr2 as $v2){

    if(!is_array($v))$v = array($v);

    if(!is_array($v2))$v2 = array($v2);

    $result[] = array_merge_recursive($v,$v2);

   }

  }

 }

 return $result;

}

Salin selepas log masuk

以上例子输出的结果如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

Array

(

  [0] => Array

    (

      [0] => 2

      [1] => 6

      [2] => a

    )

  [1] => Array

    (

      [0] => 2

      [1] => 6

      [2] => b

    )

  [2] => Array

    (

      [0] => 2

      [1] => 6

      [2] => c

    )

  [3] => Array

    (

      [0] => 2

      [1] => 7

      [2] => a

    )

  [4] => Array

    (

      [0] => 2

      [1] => 7

      [2] => b

    )

  [5] => Array

    (

      [0] => 2

      [1] => 7

      [2] => c

    )

)

Salin selepas log masuk

如果需要输出字符串形式的结果可以把代码改成这样


1

2

3

4

5

6

7

8

9

10

11

12

13

14

function dikaer($arr){

 $arr1 = array();

 $result = array_shift($arr);

 while($arr2 = array_shift($arr)){

  $arr1 = $result;

  $result = array();

  foreach($arr1 as $v){

   foreach($arr2 as $v2){

    $result[] = $v.','.$v2;

   }

  }

 }

 return $result;

}

Salin selepas log masuk

输出结果如下所示:

1

2

3

4

5

6

7

8

9

Array

(

  [0] => 2,6,a

  [1] => 2,6,b

  [2] => 2,6,c

  [3] => 2,7,a

  [4] => 2,7,b

  [5] => 2,7,c

)

Salin selepas log masuk

相关推荐:

php自定义函数生成笛卡尔积的方法

PHP自定义函数生成笛卡尔积

多个数组求笛卡尔积

Atas ialah kandungan terperinci 详解PHP实现数组的笛卡尔积运算. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan