数组映射关系一对多怎么解决 php,数组比对并求得对应关系,该怎么解决

数组比对并求得对应关系

已知数组a:

$a = array (

0 =>

array (

'packageno' => 'S2Y140805025',

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4212',

),

1 =>

array (

'packageno' => 'S2Y140805025',

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4214',

),

2 =>

array (

'packageno' => 'SYS140804073',

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4212',

),

3 =>

array (

'packageno' => 'SYS140804073',

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4213',

),

4 =>

array (

'packageno' => 'SYS140731064',

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4154',

),

5 =>

array (

'packageno' => 'SYS140731064',

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4210',

),

6 =>

array (

'packageno' => 'SYS140801090',

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4200',

),

7 =>

array (

'packageno' => 'SYS140801090',

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4210',

),

);

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

又知数组b:

$b = array (

0 =>

array (

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4211',

),

1 =>

array (

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4212',

),

2 =>

array (

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4213',

),

3 =>

array (

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4214',

),

4 =>

array (

'type' => 'ECS0-235',

'cust_no' => '12654172',

'lotno' => '4216',

),

5 =>

array (

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4154',

),

6 =>

array (

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4200',

),

7 =>

array (

'type' => 'ECS1-713',

'cust_no' => '12657727',

'lotno' => '4210',

),

);

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

请问如何处理?

------解决方案--------------------

function foo($a, $b) {

foreach($a as $v) {

$c[] = array_search($v, $b);

}

for($i=1; $i

if(abs($c[$i] - $c[$i-1]) != 1) {

return '不连续';

}

}

return '连续';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值