欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

向php数组函数array_colum()传入奇怪的数组

程序员文章站 2022-03-21 18:13:01
1
 1  <?php
 2 //  向php数组函数array_colum()传入奇怪的数组
 3 //  array_colum()函数 返回行列数组的其中一列,可以用其他列的键充当键
 4  $arr = [
 5     [ 1, 2,  3,  4, 5 ],
 6     [ 1, 2,  3,  4, 5 ],
 7     [ 1, 2,  3,  4, 5 ]
 8  ];
 9  print_r( array_column( $arr, 1, 2 ) );
10 //  array
11 //  (
12 //      [3] => 2
13 //  )
14 //  本例,用第三列作返回第二列的键,第三列的值都是4,array_colum()返回的数组键名重复,
15 // 于是值被覆盖,最后只剩下一个元素
16 print_r( array_column( $arr, 1 ) );
17 // array
18 // (
19 //     [0] => 2
20 //     [1] => 2
21 //     [2] => 2
22 // )
23 // array_colum( $arr, 1 ) 这样使用就可以获得第二列的值。
24 
25 $arr = [
26     [1, 2, 3, 4],
27     [5, 6, 7],
28     [8, 9, 10, 11]
29 ];
30 print_r( array_column( $arr, 1, 3 ) );
31 // array
32 // (
33 //     [4] => 2
34 //     [5] => 6
35 //     [11] => 9
36 // )
37 // 本例中,目标数组的第四列缺少一项,于是返回的数组第二个元素的键被系统php自动设置成了5
38 $arr = [
39     [1, 2, 3, 4],
40     [5, 6, 7],
41     [8, 9, 10, 11]
42 ];
43 print_r( array_column( $arr, 3, 1 ) );
44 // array
45 // (
46 //     [2] => 4
47 //     [9] => 11
48 // )
49 // 在本例中,目标数组的第四列少一个值,返回的数组并不含这一项。
50 $arr = [
51     ['a', 'b', 'c', 'd'],
52     ['e', 'f', 'g' ],
53     ['i', 'j', 'k', 'l']
54 ];
55 print_r( array_column( $arr, 1, 3 ) );
56 // array
57 // (
58 //     [d] => b
59 //     [0] => f
60 //     [l] => j
61 // )
62 // 当第四列其中一个没有值时,系统会自动补上索引键名
63 $arr = [
64     ['a', 'b', 'c', 'd'],
65     ['e', 'f', 'g' ],
66     ['i', 'j', 'k', 'l']
67 ];
68 print_r( array_column( $arr, 3, 1 ) );
69 // 和上面一样,当某一列没有值,而又被指定为返回数组的值,这时,返回数组不含这个值
70 $arr = [
71     ['a' => 'a', 'b' => 'b', 'c' => 'c'],
72     ['d' => 'd', 'e' => 'e', 'f' => 'f'],
73     ['g' => 'g', 'h' => 'h', 'i' => 'i']
74 ];
75 print_r( array_column( $arr, 'b', 'c' ) );
76 // array
77 // (
78 //     [c] => b
79 // )
80 // 因为指定的这两列都只有一个满足条件,于是返回数组只有一个元素