Ставить один и тот же ключ на все элементы массива - PullRequest
0 голосов
/ 03 апреля 2012

Я получаю массив, используя функцию preg_match_all.Код такой, какой он есть:

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

Возвращает связанный массив из типа:

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

Где значения на самом деле являются идентификаторами для таблицы Link, где у меня есть два внешнихkeys, значения одного FK - это значения приведенного выше массива, мне нужно назначить ключам другое значение, которое должно быть одинаковым для всех элементов, потому что я собираюсь использовать его для нескольких вставок в таблицу.чтобы было понятно, если я хочу вставить все значения с идентификатором 67, я думаю, что мне нужно что-то вроде этой формы моей активной записи codeigniter:

array (5) {[67] => string (1)) "1" [67] => строка (1) "2" [67] => строка (1) "3" [67] => строка (1) "4" [67] => строка (1) "5 "}

И используйте команду AR:

$ this-> db-> insert ('mytable', $ соответствия [0]);

Я попробую это в первый раз, так что любой совет будет оценен, но самое важное - изменить значение ключей на тот же номер, и, возможно, если бы вы могли сказать, является ли это правильным способомвсделать множественную вставку, используя CodeIgniter AR.Спасибо

Лерон

Ответы [ 2 ]

3 голосов
/ 03 апреля 2012

Вы не можете иметь дубликаты ключей в массиве, они должны быть уникальными, так как они существуют для ссылок!

Однако, что бы вы могли сделать, у него есть ассоциативный массив, подобный так:

$array = array(
    1 => array(
        'id' => 67
    ),
    2 => array(
        'id' => 67
    )
);
0 голосов
/ 03 апреля 2012

ах, как это будет работать? вы не можете иметь несколько одинаковых ключей массива; то, что вы могли бы сделать, это иметь массив, хранящий все строки под одним и тем же ключом, например,

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

и я не уверен, как это будет работать для вашей базы данных ... все это пахнет плохим дизайном базы данных / таблицы - то есть вы явно не можете использовать '67' в качестве первичного ключа, и поэтому вам не следует добавлять строки на основе его значения, а использовать уникальный ключ (например, столбец с автоинкрементом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...