2

配列の2つの値を、他の値をオーバーライドする代わりに組み合わせることができるかどうか、またどのようにできるかを知りたいです。例を示します。

CSVファイルからデータベースにフィールドをマッピングするフォームがあります。私が直面している問題は、たとえば、データベースの1つのアドレスフィールドにマージする必要がある2つのアドレスフィールドがあるということです。(IE:下の写真)

代替テキスト

したがって、$ _POST[]配列を見ると問題が発生します。2つのホームアドレスが選択されていることが表示され、最後に選択されたホームアドレスを使用してデータベースにインポートされます。

情報を1にマージするにはどうすればよいですか。これにより、私の問題に関する十分な情報が得られることを願っています。具体的な情報が必要な場合はお知らせください。

私はすべての配列を扱っていますが、データベースに投稿するときは、リフレクションクラスを使用しているため、配列をループする必要があります。これが理にかなっているといいのですが...

この問題についてどんな光でもいただければ幸いです。乾杯、

かなりのコメントをいただきありがとうございます。あなたの回答で私が抱えている問題は、address []に入力を作成できないことです。これは動的であり、どちらがアドレスに設定され、どれがアドレスに設定されるかわからないためです。おそらく「電話」に設定してください...この新しい写真が少し理解に役立つことを願っています。

一部のコード(短縮):

<select name="Home_Address_1"> // name is dynamically generated from the CSV headings
  <option>...</option>
</select>
<select name="Home_Address_2"> // name is dynamically generated from the CSV headings
  <option>...</option>
</select>
4

3 に答える 3

2

1 つの配列で 2 つの投稿された値を使用する例:

<!-- HTML -->
<input name="address[]" type="text" value="111" />
<input name="address[]" type="text" value="222" />

name 属性に注意してください。

// PHP
$address = $_POST['address'][0] . ' ' . $_POST['address'][1];

echo $address; // prints "111 222"

アップデート

スクリプトが配列をループする前に$_POST、次のようにフィールドをマージします。

$preformat  = $_POST['Home_Address_1'];
$preformat .= ' ' . $_POST['Home_Address_2'];
$preformat .= ' ' . $_POST['Home_Address_3'];
$_POST['Home_Address_3'] = trim($preformat);

次に、最後の Home Address フィールドには 3 つすべてが含まれます。

于 2010-12-30T04:31:18.533 に答える
0

array_merge()を試してください... http://php.net/manual/en/function.array-merge.php

于 2010-12-30T04:32:09.833 に答える
0

シャッフルでarray_mergeを試してください

$merged = array_merge($arr1,$arr2);
shuffle($merged);

に関して

ワジー

于 2010-12-30T04:36:15.397 に答える