2013-08-25 1 views
0

Я пытался найти ответ на этот вопрос на некоторое время, но я не смог ... Так что я должен задать вопрос ...Как добавить этот массив в MySQL (очень запутанном)

Чтобы сделать это коротко, я не буду публиковать какой-либо код, который у меня есть, но задаю прямолинейный вопрос.

У меня есть массив, который выглядит следующим образом:

Array 
(
    [0] => Array 
     (
      [0] => ID09666 
      [1] => ID14366 
      [2] => ID8174 
      [3] => ID4106 
     ) 

    [1] => Array 
     (
      [0] => /title_is_fantastic/ 
      [1] => /what_an_awesome_title/ 
      [2] => /great_title/ 
      [3] => /awesome_title/ 
     ) 

    [2] => Array 
     (
      [0] => Title is fantastic 
      [1] => What an awesome title 
      [2] => Great title 
      [3] => Awesome title 
     ) 

    [4] => Array 
     (
      [0] => 100% 
      [1] => 86% 
      [2] => 76% 
      [3] => 68% 
     ) 

) 

Значения, которые мне нужно добавить к БД:

ID = ID09666 
url = /title_is_fantastic/ 
title = Title is fantastic 
percent = 100% 

Так как я могу добавить эти значения быстро в базу данных? Я очень смутился с этим массивом, поэтому любая помощь оценивается.

Спасибо!

ответ

0

Ну, я думаю, я понимаю вашу точку зрения. Проблема в том, что ваш оригинальный массив - несколько довольно наград. Если бы я был вами, я хотел бы сделать функцию, чтобы изменить массив первой форме:

Array 
(
    [0] => Array 
     (
      [id] => ID09666 
      [url] => /title_is_fantastic/ 
      [title] => Title is fantastic 
      [percent] => 100% 
     ) 
    ... 
) 

Затем доступ к первому (или любой) элемент прямо вперед. Эта функция что-то вроде:

function rearrange($arr){ 
    $array_number = count($arr[0]); 
    $new_arr = array(); 
    for ($i=0,$i<$array_number<$i++){ 
     $new_arr[$i]['id']=$arr[0][$i]; 
     $new_arr[$i]['url']=$arr[1][$i]; 
     $new_arr[$i]['title']=$arr[2][$i]; 
     $new_arr[$i]['percent']=$arr[3][$i]; 
    } 
    return $new_arr; 
} 
+0

Это была моя мысль, я думал о том, как переставить массив, и с ним было бы легче справиться, так что это еще одна вещь, которую я только что узнал сегодня. :) Спасибо! – user2714069

+0

Ты рад :) – haibuihoang

0

Допустим, что ваш массив $array:

$length = count($array[0]); 
$rows = array(); 
for($i = 0; $i < $length; $i++) 
    $rows[] = "(".array($array[0][$i].", ".$array[1][$i].", ".$array[2][$i].", ".$array[3][$i].")"; 

// Ugly language with no executemany function... So we build a INSERT INTO with many values by ourselves 
$sql = "INSERT INTO table (id, url, title, percent) VALUES " . implode(',', $rows); 

$stmt = $pdo->prepare ($sql); 
try { 
    $stmt->execute($insert_values); 
} catch (PDOException $e){ 
    echo $e->getMessage(); 
} 
$pdo->commit(); 
+0

Это именно то, что я искал! Спасибо! :) – user2714069

Смежные вопросы