本文实例总结了php实现快速对二维数组某一列进行组装的方法。分享给大家供大家参考,具体如下:
问题:
比如我二维数组是这样的:
1
2
3
4
5
6
7
|
$user = array (
'0' => array ( 'id' =>100, 'username' => 'a1' ),
'1' => array ( 'id' =>101, 'username' => 'a2' ),
'2' => array ( 'id' =>102, 'username' => 'a3' ),
'3' => array ( 'id' =>103, 'username' => 'a4' ),
'4' => array ( 'id' =>104, 'username' => 'a5' ),
)
|
如何快速的获取所有id组成的ids字符串,比如$ids='100,101,102,103,104'; 再者如果我有条件的组装,比如id!=103等这样的,除了循环处理外有没有比较方便快速的方法?
解决方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$user = array (
'0' => array ( 'id' =>100, 'username' => 'a1' ),
'1' => array ( 'id' =>101, 'username' => 'a2' ),
'2' => array ( 'id' =>102, 'username' => 'a3' ),
'3' => array ( 'id' =>103, 'username' => 'a4' ),
'4' => array ( 'id' =>104, 'username' => 'a5' ),
);
/**
* @param array $array 数组
* @param string $k 要获取值的key
* @param array $rm 要去除的数据
* */
function array_get_v( $array , $k , $rm )
{
if (!trim( $k )) return false;
preg_match_all( "/\"$k\":(\d+)/" , json_encode( $array ), $res );
$res = array_diff ( $res [1], $rm );
return implode( ',' , $res );
}
print_r(array_get_v( $user , 'id' , array (101)));
|
运行结果:
100,102,103,104
补充方法:
例1:
1
2
3
4
5
6
7
8
9
10
11
|
$user = array (
'0' => array ( 'id' => 100, 'username' => 'a1' ),
'1' => array ( 'id' => 101, 'username' => 'a2' ),
'2' => array ( 'id' => 102, 'username' => 'a3' ),
'3' => array ( 'id' => 103, 'username' => 'a4' ),
'4' => array ( 'id' => 104, 'username' => 'a5' ),
);
array_walk ( $user , function ( $v , $k ) use (& $ids ){
$ids [ $k ] = $v [ 'id' ];
});
echo implode( ',' , $ids );
|
运行结果:
100,101,102,103,104
例2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
function process( $v ){
//如果要加限制条件,在这里加入即可
if (isset( $v [ 'id' ]))
return $v [ 'id' ];
}
$user = array (
'0' => array ( 'id' => 100, 'username' => 'a1' ),
'1' => array ( 'id' => 101, 'username' => 'a2' ),
'2' => array ( 'id' => 102, 'username' => 'a3' ),
'3' => array ( 'id' => 103, 'username' => 'a4' ),
'4' => array ( 'id' => 104, 'username' => 'a5' ),
);
$aUser = array_map ( "process" , $user );
echo implode( ',' , $aUser );
|
运行结果:
100,101,102,103,104
希望本文所述对大家PHP程序设计有所帮助。
原文链接:http://www.dewen.net.cn/q/5090/php+%E5%BF%AB%E9%80%9F%E7%9A%84%E5%AF%B9%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E6%9F%90%E4%B8%80%E5%88%97%E8%BF%9B%E8%A1%8C%E7%BB%84%E8%A3%85%E7%9A%84%E6%96%B9%E6%B3%95