Установите ключи массива в соответствии со значениями другого - PullRequest
1 голос
/ 13 декабря 2011
$array1 = array( [0] => 2 [1] => 3 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 ) ;

$array2 = array( ( [0] => Array (...) [1] => Array (...) [2] => Array (...) ... [6] => Array (...));

Они имеют одинаковое количество элементов. Я хочу, чтобы array2 имел в качестве ключей значения array1.

Должно стать:

 $array2 = array( ( [2] => Array (...) [3] => Array (...) [5] => Array (...) ... [9] => Array (...));

Я написал этот код, но я не знаю, почему он возвращает только часть массива 2.

reset($array1);reset($array2);
foreach ($array2 as $k => $v) {
   unset ($array2[$k]);

   $new_key =  current($array1);
   next($array1);
   $array2[$new_key] = $v;
}
print_r($array2);

Заранее спасибо.

1 Ответ

2 голосов
/ 13 декабря 2011

Используйте array_combine для создания объекта с ключами из одного массива и значениями из другого.

$array_1 = array ('hello','world','stackoverflow');
$array_2 = array (
  array ('greetings'),
  array ('planet'),
  array ('websitefilledwithgeeks')
);

print_r (
  array_combine ($array_1, $array_2)
);

output

    Array
(
    [hello] => Array
        (
            [0] => greetings
        )

    [world] => Array
        (
            [0] => planet
        )

    [stackoverflow] => Array
        (
            [0] => websitefilledwithgeeks
        )

)

Документация PHP: array_combine

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...