显示不相邻的数据
程序员文章站
2024-01-24 12:27:40
...
已知$arrs,
现将同pono的数据合并,得:
现在想求仅显示不相邻的no,如例中的项:
[0] => Array
(
[pono] => a
[no] => 4711,4714
)
请问怎么求?
非常感谢!
?化了一下,可以支持'no'不指定2??值的情?。
array ( 0 => array ( 'pono' => 'a', 'no' => '4711', ), 1 => array ( 'pono' => 'a', 'no' => '4714', ), 2 => array ( 'pono' => 'b', 'no' => '4714', ), 3 => array ( 'pono' => 'b', 'no' => '4715', ), 4 => array ( 'pono' => 'c', 'no' => '4715', ), 5 => array ( 'pono' => 'c', 'no' => '4716', ),)
现将同pono的数据合并,得:
$tmp=array();$data=array();$i=0;foreach($arrs as $key=>$arr){ if(!empty($tmp) && array_key_exists($arr['pono'],$tmp)){ $key=$tmp[$arr['pono']]; $arr_no=explode(',',$data[$key]['no']); if(!in_array($arr['no'],$arr_no)) $data[$key]['no'].=','.$arr['no']; }else{ $tmp[$arr['pono']]=$i; $data[$i++]=$arr; }}print_r($data);//得到结果:Array( [0] => Array ( [pono] => a [no] => 4711,4714 ) [1] => Array ( [pono] => b [no] => 4714,4715 ) [2] => Array ( [pono] => c [no] => 4715,4716 ))
现在想求仅显示不相邻的no,如例中的项:
[0] => Array
(
[pono] => a
[no] => 4711,4714
)
请问怎么求?
回复讨论(解决方案)
$arrs = array ( 0 => array ( 'pono' => 'a', 'no' => '4711', ), 1 => array ( 'pono' => 'a', 'no' => '4714', ), 2 => array ( 'pono' => 'b', 'no' => '4714', ), 3 => array ( 'pono' => 'b', 'no' => '4715', ), 4 => array ( 'pono' => 'c', 'no' => '4715', ), 5 => array ( 'pono' => 'c', 'no' => '4716', ),);$tmp=array();$data=array();$i=0;foreach($arrs as $key=>$arr){ if(!empty($tmp) && array_key_exists($arr['pono'],$tmp)){ $key=$tmp[$arr['pono']]; $arr_no=explode(',',$data[$key]['no']); if(!in_array($arr['no'],$arr_no)) $data[$key]['no'].=','.$arr['no']; }else{ $tmp[$arr['pono']]=$i; $data[$i++]=$arr; }}print_r($data);$result = array();foreach($data as $val){ list($a, $b) = explode(',', $val['no']); if(abs($a-$b)!=1){ array_push($result, $val); }}print_r($result);
Array( [0] => Array ( [pono] => a [no] => 4711,4714 ))
非常感谢!
array ( 'pono' => 'a', 'no' => '4711', ), 1 => array ( 'pono' => 'a', 'no' => '4714', ), 2 => array ( 'pono' => 'b', 'no' => '4714', ), 3 => array ( 'pono' => 'b', 'no' => '4715', ), 4 => array ( 'pono' => 'c', 'no' => '4715', ), 5 => array ( 'pono' => 'c', 'no' => '4716', ), 6 => array ( 'pono' => 'a', 'no' => '4712', ), 7 => array ( 'pono' => 'a', 'no' => '4713', ), 8 => array ( 'pono' => 'a', 'no' => '4719', ),);$tmp=array();$data=array();$i=0;foreach($arrs as $key=>$arr){ if(!empty($tmp) && array_key_exists($arr['pono'],$tmp)){ $key=$tmp[$arr['pono']]; $arr_no=explode(',',$data[$key]['no']); if(!in_array($arr['no'],$arr_no)) $data[$key]['no'].=','.$arr['no']; }else{ $tmp[$arr['pono']]=$i; $data[$i++]=$arr; }}print_r($data);$result = array();foreach($data as $val){ $tmp = explode(',', $val['no']); if(!checkSerialNum($tmp)){ array_push($result, $val); }}print_r($result);// 判????元素是否???字function checkSerialNum($arr){ asort($arr); $arr = array_values($arr); for($i=0,$len=count($arr)-1; $i
?化了一下,可以支持'no'不指定2??值的情?。
上一篇: 请问这句是不是这个意思?
推荐阅读
-
显示不相邻的数据
-
Oracle数据显示保留小数点的问题
-
mysql-如何获取一年里每个月的记录总数,要求不管该月有没有数据都要显示,没有的显示为0?
-
大数据框架hadoop之版本显示的实现逻辑
-
使用react实现手机号的数据同步显示功能的示例代码
-
数据库查查出的数据如何显示在日历中
-
php的分页显示数据库的有关问题,有代码,求分析分析
-
PHP 留言簿(带Oracle数据库分页的显示功能)_PHP教程
-
codeigniter中view通过循环显示数组数据的方法,codeigniterview_PHP教程
-
怎么样在html点击某一行,会显示相应的数据,其中的金额要以千位分隔符显示_html/css_WEB-ITnose