У меня есть эти массивы:
$a = ['a','b','c','d','e','f'];
$b = ['d','e','f'];
если я использую array_intersect для массива выше, как,
$c = array_intersect($a, $b);
$d = array_intersect($b,$a);
$ c вернется:
Array
(
[3] => d
[4] => e
[5] => f
)
и $ d вернется:
Array
(
[0] => d
[1] => e
[2] => f
)
Как я могу узнать пару ключей этих array_intersection, как,
[3] --> [0]
[4] --> [1]
[5] --> [2]
Я имею в виду индекс [3] массива $a
пересекается с индексом [0] в массиве $b
, откуда мне это знать ??
Большое спасибо.
<?php
$a = ['a', 'b', 'c', 'd', 'e', 'f'];
$b = ['d', 'e', 'm', 'f'];
$intersect = array_intersect($a, $b);
$key_intersect = [];
foreach ($intersect as $key => $value) {
$key_intersect[$key] = array_search($value, $b);
}
var_dump($key_intersect);
В array $b
Я вставил дополнительный элемент, чтобы проверить, работает ли он отлично, даже если остался какой-то элемент.
Хочешь вот так: —
<?php
$a = ['a','b','c','d','e','f'];
$b = ['d','e','f'];
$c= array_intersect( $a,$b);
$d= array_intersect( $b,$a);
$intersection_keys_array = array_combine (array_keys($c),array_keys($d)); // combine $c and $d so that $c values become key and $d values become values in resultant array
print_r($intersection_keys_array);
Выход:- https://eval.in/768032
Или же
Чуть более необычный вывод: — https://eval.in/768033