2012-04-03 31 views
0

私は関数preg_match_allを使って配列を取得します。配列のすべての要素に同じキーを置く

$str = $dataGroups['groups']; 
preg_match_all('/[0-9]/', $str, $matches); 

それはタイプから連想配列を返します:そのままのコードでは、ある値が、実際に私は2つの外部キーを持っているリンクテーブルのidの、価値ある

array(5) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" } 

1つのFKの値は上記の配列です。必要なのは、テーブルに複数の挿入に使用するため、すべての要素で同じ値でなければならない別の値をキーに割り当てることです。もし私がid 67を持つすべての値を挿入したいのであれば、私はこのコードのようなものが私のcodeigniter active record:

array(5){[67] =>ストリング(1) "1" [67] =>ストリング(1) "2" [67] =>ストリング(1) "3" [67] =>文字列(1) "4" [67] =>の文字列(1) "5"}

そして、ARコマンドを使用します。

ます$ this-> DB->( 'mytableは' を挿入、$ matches [0]);

Iつもりだので何かアドバイスが高く評価され、初めてそれを試したが、最も重要なのは、同じ番号でキーの値を変更することであり、これは正しい方法であれば、多分あなたが言うことができればCodeIgniter ARを使用して複数の挿入を行います。あなたは配列内の重複したキーを持つことはできません

Leron

答えて

3

おかげで、彼らは参照のためにそこにあるとしてユニークでなければなりません!

しかし、あなたはそれを何ができるかそのような連想配列を持っている:

$array = array(
    1 => array(
     'id' => 67 
    ), 
    2 => array(
     'id' => 67 
    ) 
); 
0

えっ、どのようにそれが働くだろうか?複数の同一の配列キーを持つことはできません。あなたができることは、同じキーの下にすべての文字列を格納する配列を持つことです。

array(
    "67" => array(
     "string 1", 
     "string 2", 
     ... 
     "string 5" 
    ) 
); 

と私は...貧しいデータベース/テーブルの設計のように、この全体のこと臭いそれがあなたのデータベースのために働くだろうかわからない - そう、あなたは明らかに主キーとして「67」を使用することはできませんつまり、およびその値に基づいて行を追加するのではなく、一意のキー(たとえば、自動インクリメントされた列)を使用して追加する必要があります。

関連する問題