Как узнать пару ключей, которые возвращаются из array_intersec

У меня есть эти массивы:

$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, откуда мне это знать ??

Большое спасибо.

2

Решение

<?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 Я вставил дополнительный элемент, чтобы проверить, работает ли он отлично, даже если остался какой-то элемент.

1

Другие решения

Хочешь вот так: —

<?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

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector