2013-09-03 4 views
0

У меня есть один массив, и он имеет 10 + индексов.Вставка одного массива в 2 таблицы на основе индекса массива

То, что я хочу сделать, это установить переменную $ таблицу на основе индекса, так что он будет вставить

Array[0] - Array[9] to $table = table1 

и вставит

Array[10] - Array[14] to $table = table2 

Я не хочу использовать if заявление, потому что они мне нужны оба вставлены

Я надеялся сохранить это в одном запросе и использовать таблицу $ (если возможно)

Как я мог это достичь?

ответ

1
$table = array(); 

foreach($array as $key => $value) 
    if ($key <= 9) 
    $table['table1'][$key] = $value; 
    else 
    $table['table2'][$key] = $value; 

Это будет держать все это в одном массиве. Который, по моему мнению, является тем, чем вы занимались.

Я ужасен в SQL запросе, так что ниже просто Псевдокод, если каждая клавиша представляет собой столбец в таблице:

foreach($table as $key => $value){ 
    if($key == 'table1'){ 
     foreach($value as $key => $value){ 
      //INSERT INTO table1 ($key) VALUES ($value) 
     { 
    if($key == 'table2'){ 
     foreach($value as $key => $value){ 
      //INSERT INTO table2 ($key) VALUES ($value) 
     { 
} 
+0

Спасибо. Что бы я заменил в моем запросе мой '$ table'? '$ table []' или что-то еще? –

+0

Зависит от способа настройки таблицы. У каждого ключа будет своя собственная строка? Или ключевое значение 0-9 столбца в одной строке? – squeegy

0

Так вы создаете 2 массивы и работать с ними:

$table1 = array() ; //Save data into arrays so you can put it in a database (?) 
$table2 = array() ; 

foreach(array_values($array) as $key => $value){ 
    if ($key <= 9) 
    $table1[] = $value ; 
    else 
    $table2[] = $value ; 
} 
Смежные вопросы