У меня есть два массива с идентификатором пользователя
$array1 = array("5","26","38","42"); $array2 = array("15","36","38","42");
Что мне нужно, мне нужны общие значения из массива следующим образом
$array3 = array(0=>"38", 1=>"42");
Я попробовал array_intersect()
. Я хотел бы получить метод, который занимает минимальное время выполнения. Пожалуйста, помогите мне, друзья.
Родные функции PHP быстрее, чем пытаться создать собственный алгоритм.
$result = array_intersect($array1, $array2);
Используйте этот, хотя это может быть длинный метод:
$array1 = array("5","26","38","42"); $array2 = array("15","36","38","42"); $final_array = array(); foreach($array1 as $key=>$val){ if(in_array($val,$array2)){ $final_array[] = $val; } } print_r($final_array);
Результат: Массив ([0] => 38 [1] => 42)
Я думаю, вам не нужно использовать значение $key=>$value
для вашей проблемы, поэтому проверьте этот ответ:
<?php $array1 = array("5", "26", "38", "42"); $array2 = array("15", "36", "38", "42"); foreach ($array1 as $value) { if (in_array($value, $array2)) { $array3[] = $value; } } print_r($array3); ?>
array_intersect () работает отлично.
array array_intersect (массив $ array1, array $ array2 [, array $ …])
$array1 = array("5","26","38","42"); $array2 = array("15","36","38","42"); echo array_intersect($array1, $array2);