This is my array:
Array ( [TR] => Array ( [name] => sayfa adı [description] =>
sayfa icerigi
[slug] => sayfa linki ) [EN] => Array ( [name_en] => page name [description_en] =>
page information
[slug_en] => page link ) [DE] => Array ( [name_de] => seite name [description_de] =>
seite informationen
[slug_de] => seite link ) )
this is my codeigniter insert code:
$_INS = array(
'lang_id' => '?',
'name' => '?',
'description' => '?',
'slug' => '?',
'page_id' => $insert_id,
'adding' => $adding,
'updated_at' => date('Y-m-d H:i:s'),
'created_at' => date('Y-m-d H:i:s')
);
and I want to add every array into the DB with a new line
Simple nested foreach with a key modifier to remove the underscore and a batch insert should work:
<?php
$array = array(
'TR' => array (
'name' => 'stmtA_1',
'description' => 'stmtA_2',
'slug' => 'stmtA_3',
),
'EN' => array(
'name_en' => 'stmtB_1',
'description_en' => 'stmtB_2',
'slug_en' => 'stmtB_3',
),
);
$insert_id = null;
$adding = null;
$i = 0;
$data = array();
foreach ($array as $lang => $values) {
$data[$i] = array(
'page_id' => $insert_id,
'adding' => $adding,
'updated_at' => date('Y-m-d H:i:s'),
'created_at' => date('Y-m-d H:i:s'),
'lang_id' => $lang
);
foreach ($values as $identifier => $value) {
$key = explode('_', $identifier)[0];
$data[$i][$key] = $value;
}
$i++;
}
echo '<pre>';
print_r($data);
$this->db->insert_batch('my_table', $data);