Объединить 2 массива разной длины

У меня есть два массива, каждый из которых имеет разные значения, пример, с которым я работаю, есть 132 в одном и 136 в другом,

Мне нужно array_combine() их (сделать первый ключ, а второй – значением). В моем примере я хотел бы сохранить 132 пары ключ / значение и отбросить лишние 4, которые не имеют соответствующего соответствия.

У меня есть эта функция (которую я нашел в документах php.net для array_combine() ), но она не работает:

 function array_combine2($arr1, $arr2) { $count1 = count($arr1); $count2 = count($arr2); $numofloops = $count2/$count1; $i = 0; while($i < $numofloops){ $arr3 = array_slice($arr2, $count1*$i, $count1); $arr4[] = array_combine($arr1,$arr3); $i++; } return $arr4; } 

Я продолжаю возвращаться

Предупреждение: array_combine () [function.array-comb]: оба параметра должны иметь равное количество элементов в строке, которая начинается с $ arr4 [] = …

Любой совет поможет,

благодаря!

 function array_combine2($arr1, $arr2) { $count = min(count($arr1), count($arr2)); return array_combine(array_slice($arr1, 0, $count), array_slice($arr2, 0, $count)); } 

Вот однострочный:

 $res = array_combine(array_intersect_key($arr1, $arr2), array_intersect_key($arr2, $arr1)); 

вот идеальная функция в самом PHP, называемая "array_combine ()"

  /*----------------------------------------------------------- | Parameter | Description | ------------------------------------------------------------- | array1 Required. | An array, specifying the keys | ------------------------------------------------------------- | array2 Required. | An array, specifying the values | -----------------------------------------------------------*/ $array1 = ('John','Mark','Ester'); $array2 = (1111,2222); // if some elements dont exists, "add" them... if(count($array1) != count($array2)) { foreach($array as $key => $value): if(!isset($array2[$key]) $array2[$key] = NULL; endforeach; } // now, combine them in classic way... $combined = array_combine($array1,$array2);