>백엔드 개발 >PHP 튜토리얼 >数组比对并求得对应关系,该怎么解决

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

WBOY
WBOY원래의
2016-06-13 12:04:16978검색

数组比对并求得对应关系
已知数组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>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.