数组比对并求得对应关系,该怎么解决

WBOY
发布: 2016-06-13 12:04:16
原创
948 人浏览过

数组比对并求得对应关系
已知数组a:

<br />$a = array (<br />  0 => <br />  array (<br />    'packageno' => 'S2Y140805025',<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4212',<br />  ),<br />  1 => <br />  array (<br />    'packageno' => 'S2Y140805025',<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4214',<br />  ),<br />  2 => <br />  array (<br />    'packageno' => 'SYS140804073',<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4212',<br />  ),<br />  3 => <br />  array (<br />    'packageno' => 'SYS140804073',<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4213',<br />  ),<br />  4 => <br />  array (<br />    'packageno' => 'SYS140731064',<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4154',<br />  ),<br />  5 => <br />  array (<br />    'packageno' => 'SYS140731064',<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4210',<br />  ),<br />  6 => <br />  array (<br />    'packageno' => 'SYS140801090',<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4200',<br />  ),<br />  7 => <br />  array (<br />    'packageno' => 'SYS140801090',<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4210',<br />  ),<br />);<br />
登录后复制


有对应关系,例如 packageno S2Y140805025 对应 lotno 4212,4214(type为ECS0-235,cust_no为12654172时)

又知数组b:
<br />$b = array (<br />  0 => <br />  array (<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4211',<br />  ),<br />  1 => <br />  array (<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4212',<br />  ),<br />  2 => <br />  array (<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4213',<br />  ),<br />  3 => <br />  array (<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4214',<br />  ),<br />  4 => <br />  array (<br />    'type' => 'ECS0-235',<br />    'cust_no' => '12654172',<br />    'lotno' => '4216',<br />  ),<br />  5 => <br />  array (<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4154',<br />  ),<br />  6 => <br />  array (<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4200',<br />  ),<br />  7 => <br />  array (<br />    'type' => 'ECS1-713',<br />    'cust_no' => '12657727',<br />    'lotno' => '4210',<br />  ),<br />);<br />
登录后复制


问:当数组a和b的type和cust_no相同时,数组a中的packageno对应的lotno在数组b中是否连续,如果不连续,则将packageno显示出来。

请问如何处理?
------解决方案--------------------

function foo($a, $b) {<br>  foreach($a as $v) {<br>    $c[] = array_search($v, $b);<br>  }<br>  for($i=1; $i<count></count>    if(abs($c[$i] - $c[$i-1]) != 1) {<br>      return '不连续';<br>    }<br>  }<br>  return '连续';<div class="clear">
                 
              
              
        
            </div>
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板