взорвать строку в массив php с ключами из другого массива;

Есть ли способ взорвать строку в массив assoc с ключами из другого массива? пример: у меня есть массив

$array = array('firstname' => 'john', 'lastname' => 'smith');

теперь у меня есть еще одна строка, например:

$fullname = 'Paul Phoenix';

так что теперь я хочу взорвать полное имя в массив, похожий на массив $ с теми же ключами

$array2 = array('firstname' => 'paul', 'lastname' => 'phoenix');

person user2707590    schedule 21.10.2013    source источник


Ответы (3)


используйте, как показано ниже

<?php
$a = array('firstname', 'lastname');

$fullname = 'Paul Phoenix';

$b = explode(" ",$fullname);

$c = array_combine($a, $b);

print_r($c);

?>

надеюсь, что это обязательно сработает для вас.

person liyakat    schedule 21.10.2013

Используйте array_keys(), чтобы получить ключи от $array, взорвите $fullname на клетке, а затем используйте array_combine(), чтобы объединить их:

$array2 = array_combine(array_keys($array), explode(' ', $fullname));
person billyonecan    schedule 21.10.2013

$fullname = 'Paul Phoenix';

$name = array();
list($name['firstname'], $name['lastname']) = explode(' ', $fullname);

выход:

array(2) {
  ["lastname"]=>
  string(7) "Phoenix"
  ["firstname"]=>
  string(4) "Paul"
}

Обновлять:

$array = array('firstname' => 'john', 'lastname' => 'smith');
$fullname = 'Paul Phoenix';

$array2 = array_combine(array_keys($array), explode(' ', $fullname));

выход:

array(2) {
  ["lastname"]=>
  string(7) "Phoenix"
  ["firstname"]=>
  string(4) "Paul"
}
person JimL    schedule 21.10.2013
comment
вы жестко кодируете ключи массива, которые мне нужно взять из самого 1-го массива. если в 1-м массиве больше ключей, во втором массиве должны быть точно такие же ключи - person user2707590; 21.10.2013