VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php实现快速对二维数组某一列进行组装的方法小结

这篇文章主要介绍了php实现快速对二维数组某一列进行组装的方法,涉及PHP数组遍历、转换、拆分等相关操作技巧,需要的朋友可以参考下。

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

问题:

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

  1. $user = array
  2.  '0'=> array('id'=>100,'username'=>'a1'), 
  3.  '1'=> array('id'=>101,'username'=>'a2'), 
  4.  '2'=> array('id'=>102,'username'=>'a3'), 
  5.  '3'=> array('id'=>103,'username'=>'a4'), 
  6.  '4'=> array('id'=>104,'username'=>'a5'), 

如何快速的获取所有id组成的ids字符串,比如$ids='100,101,102,103,104'; 再者如果我有条件的组装,比如id!=103等这样的,除了循环处理外有没有比较方便快速的方法?

解决方法:

  1. $user = array
  2.  '0'=> array('id'=>100,'username'=>'a1'), 
  3.  '1'=> array('id'=>101,'username'=>'a2'), 
  4.  '2'=> array('id'=>102,'username'=>'a3'), 
  5.  '3'=> array('id'=>103,'username'=>'a4'), 
  6.  '4'=> array('id'=>104,'username'=>'a5'), 
  7. ); 
  8. /** 
  9. * @param array $array 数组 
  10. * @param string $k 要获取值的key 
  11. * @param array $rm 要去除的数据 
  12. * */ 
  13. function array_get_v($array$k$rm
  14. {  
  15.  if (!trim($k)) return false; 
  16.  preg_match_all("/\"$k\":(\d+)/", json_encode($array), $res); 
  17.  $res = array_diff($res[1],$rm); 
  18.  return implode(',',$res); 
  19. print_r(array_get_v($user'id',array(101))); 

运行结果:

100,102,103,104

补充方法:

例1:

  1. $user = array
  2. '0' => array('id' => 100, 'username' => 'a1'), 
  3. '1' => array('id' => 101, 'username' => 'a2'), 
  4. '2' => array('id' => 102, 'username' => 'a3'), 
  5. '3' => array('id' => 103, 'username' => 'a4'), 
  6. '4' => array('id' => 104, 'username' => 'a5'), 
  7. ); 
  8. array_walk($userfunction($v$kuse(&$ids){ 
  9.  $ids[$k] = $v['id']; 
  10. }); 
  11. echo implode(','$ids); 

运行结果:

100,101,102,103,104

例2:

  1. <?php 
  2. function process($v){ 
  3.  //如果要加限制条件,在这里加入即可 
  4.  if(isset($v['id'])) 
  5.   return $v['id']; 
  6. $user = array
  7.  '0' => array('id' => 100, 'username' => 'a1'), 
  8.  '1' => array('id' => 101, 'username' => 'a2'), 
  9.  '2' => array('id' => 102, 'username' => 'a3'), 
  10.  '3' => array('id' => 103, 'username' => 'a4'), 
  11.  '4' => array('id' => 104, 'username' => 'a5'), 
  12. ); 
  13. $aUser = array_map("process"$user); 
  14. echo implode(','$aUser); 

运行结果:

100,101,102,103,104

出处:http://www.phpfensi.com/php/20220125/19665.html
 


相关教程