2016-07-19 5 views
0

Как мы можем найти ключ массива Отсылка с помощью двух массивов как Первый массив:Создание массива ключевых разницы, используя два массива

$array_1 = array('300','200','500'); 

Второй массив:

$array_2 = array('500','300','200'); 

$array_2 генерирует путем применения rsort до $array_1

Затем я хочу сгенерировать массив ключей, сравнивая значение $array_1 и ключ $array_2 .Output будет массив

$key_array = ('1','2','0'); 
+0

Просто, чтобы сделать его проще, оп, кажется, хочет, чтобы выяснить, где значения теперь (к тому, что индекс значения идут после сортировки) – FirstOne

ответ

1

Использование array_flip() на $array_2 преобразовать ключи значений и наоборот , Затем вы можете легко найти оригинальные ключи.

$flip_2 = array_flip($array_2); 
$key_array = array_map(function($el) use ($flip_2) { return $flip_2[$el]; }, $array_1); 

DEMO

1

Try:

$array_1 = array('300','200','500'); 
$array_2 = array('500','300','200'); 
$key_array = array(); 
foreach($array_1 as $arr1) { 
    $key_array[] = array_search($arr1, $array_2); // get key in array_2 for value of array1 
} 
print_r($key_array); 

Выход:

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 0 
)