2013-03-31 2 views
3

Я хочу отобразить поля формы в поля базы данных.Заменить один массив массивов с другими значениями массивов в php

У меня есть два массива ..

один массив является данными и содержит идентификатор поля формы в качестве ключа и значения поля формы в качестве значения.

$data = array("inputEmail"=>"[email protected]","inputName"=>"someone"... etc 

У меня есть массив, который я намеревался использовать в качестве карты. Ключи этого массива такие же, как поля формы, а значения - имена полей базы данных.

$map = array("inputEmail"=>"email", "inputName"=>"name"... etc 

Что я хочу сделать, это итерация по массиву данных и где данные ключ соответствует ключу карты назначить новый ключ массив данных, который является значением массива карты.

$newArray = array("email"=>"[email protected]", "name"=>"someone"...etc 

Мой вопрос: как? Ive пробовал так много разных способов, которые теперь полностью потеряли в нем.

+0

Почему бы просто не иметь одинаковые имена в приложении? ;) – hek2mgl

+0

Имена полей ввода важны для работы валидации формы. Но я знаю, что вы имеете в виду. Я думал, что это будет проще, чем изменить имена всех полей ввода приложений, а также скрипт проверки. – Aparistar

+0

Если бы я мог дать совет: попробуйте использовать одни и те же имена в приложении, если ** любой ** возможно. Вы будете спасены от многих, многих головных болей. Также это хорошо для автоматического генерации кода и так далее ... – hek2mgl

ответ

7

Это сделано довольно мило с петлей Еогеаспа

foreach($data as $origKey => $value){ 
    // New key that we will insert into $newArray with 
    $newKey = $map[$origKey]; 
    $newArray[$newKey] = $value; 
} 

Более сгущенный подходом (исключая переменной используются для уточнения)

foreach($data as $origKey => $value){ 
    $newArray[$map[$origKey]] = $value; 
} 
+0

Thats awesome. Понадобилось бы немного времени, чтобы добраться туда. Благодарю. – Aparistar

+0

@Aparistar: Добро пожаловать :-) –

4

Если вы хотите заменить ключи от одного массива со значениями другой раствор равен array_combine

<?php 
$a = array('green', 'red', 'yellow'); 
$b = array('avocado', 'apple', 'banana'); 
$c = array_combine($a, $b); 

print_r($c); 
?> 

print_r output

Array 
(
    [green] => avocado 
    [red] => apple 
    [yellow] => banana 
) 
+0

'array_combine' не делает то, что пользователь в этом случае. –

+0

@SamLanning в соответствии с названием 'Заменить один массив массивов с другими значениями массивов в php', указанный выше ответ правильный, поэтому лучше не отрицать его. Поскольку это может помочь людям, которые хотят заменить ключи одного массива значениями другого. –

Смежные вопросы