Two arrays, Arraya and Arrayb
$arrayA = Array ( 0 + = Array ( 0 = 1, 4 = 1, 6 = 1, ), 1-= Array ( 1 = 1, 3 = 1, 5 = 1, ), 2-= Array ( 7 = 1, 8 = 1, 9 = 1, ),);
$arrayB = Array ( 0 = = Array ( 0 = ' A ', 1 = ' B ', 2 = ' C ', 3 = ' d ', 4 => ; ' E ', 5 = ' F ', 6 = ' g ', 7 = ' h ', 8 = ' i ', 9 = ' j ', 1 = = Array ( 0 = ' A ', 1 = ' B ', 2 = ' C ', 3 = ' d ', 4 = ' E ', 5 = ' F ' , 6 = ' G ', 7 = ' h ', 8 = ' i ', 9 = ' j ', ' 2 ' = Array ( 0 = ' A ', 1 = ' b ', 2 = ' C ', 3 = ' d ', 4 = ' E ', 5 = ' F ', 6 = ' g ', 7 = ' h ', 8 => ; ' I ', 9 = ' j ', ),);
Hope to get results
$result = Array ( 0 = = Array ( 0 = ' A ', 4 = ' E ', 6 = ' g ', ), 1 = = Array ( 1 = ' B ', 3 = ' d ', 5 = ' f ', ' 2 ' = Array ( 7 = ' h ', 8 = ' i ', 9 = ' J ', ),);
The way I do it now is to do two layers of loops
$result = Array (), foreach ($arrayA as $k = = $v) { foreach ($v as $kk + = $VV) { $result [$k] [$KK] = $arrayB [$k] [$KK]; }}
Is there any more efficient way?
Reply content:
Two arrays, Arraya and Arrayb
$arrayA = Array ( 0 + = Array ( 0 = 1, 4 = 1, 6 = 1, ), 1-= Array ( 1 = 1, 3 = 1, 5 = 1, ), 2-= Array ( 7 = 1, 8 = 1, 9 = 1,
),);
$arrayB = Array ( 0 = = Array ( 0 = ' A ', 1 = ' B ', 2 = ' C ', 3 = ' d ', 4 = ' E ', 5 = ' F ', 6 = ' g ', 7 = ' h ', 8 = ' i ', 9 = ' j ', ), 1 = array ( 0 = ' A ', 1 = ' B ', 2 = ' C ', 3 = ' d ', 4 = ' E ', 5 = ' F ', 6 = ' g ',
7 = ' h ', 8 = ' i ', 9 = ' j ', ' 2 ' = Array ( 0 = ' A ', 1 = ' B ', 2 = ' C ', 3 = ' d ', 4 = ' E ', 5 = ' F ', 6 = ' g ', 7 = ' h ', 8 = ' I ',
9 = ' J ', ),);
Hope to get results
$result = Array ( 0 = = Array ( 0 = ' A ', 4 = ' E ', 6 = ' g ', ), 1 = = Array ( c42/>1 = ' B ', 3 = ' d ', 5 = ' f ', ), 2 = = Array ( 7 = ' h ', 8 = ' I ',
9 = ' J ', ),);
The way I do it now is to do two layers of loops
$result = Array (), foreach ($arrayA as $k = = $v) { foreach ($v as $kk + = $VV) { $result [$k] [$KK] = $arrayB [$ k][$KK]; }}
Is there any more efficient way?
You can use the built-in functions of PHP array_intersect
Reference