php删除二维数组的某一行某一列_php实现快速对二维数组某一列进行组装的方法小结...

本文实例总结了php实现快速对二维数组某一列进行组装的方法。分享给大家供大家参考,具体如下:

问题:

比如我二维数组是这样的:

$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等这样的,除了循环处理外有没有比较方便快速的方法?

解决方法:

$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:

$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:

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相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值