5

フォーム フィールドをデータベース フィールドにマッピングしたいと考えています。

私は2つの配列を持っています..

1 つの配列はデータであり、フォーム フィールド ID をキーとして、フォーム フィールド値を値として含みます。

$data = array("inputEmail"=>"someone@somewhere.com","inputName"=>"someone"... etc

マップとして使用する予定の配列もあります。この配列のキーはフォーム フィールドと同じで、値はデータベース フィールド名です。

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

私がしたいのは、データ配列を反復処理し、データキーがマップキーと一致する場所で、マップ配列の値であるデータ配列に新しいキーを割り当てることです。

$newArray = array("email"=>"someone@somewhere.com", "name"=>"someone"...etc

私の質問はどうですか?私は非常に多くの異なる方法を試しましたが、今では完全に迷っています。

4

2 に答える 2

11

これは、 foreach ループで非常にうまく作られています

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;
}
于 2013-03-31T22:59:06.687 に答える
10

ある配列のキーを他の配列の値に置き換えたい場合の解決策は次のとおりです。array_combine

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

print_r($c);
?>

print_r 出力

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)
于 2014-06-26T15:21:15.953 に答える