2016-12-14 4 views
0
$cn = curl_init(); 
$url = 'https://URL'; 

curl_setopt($cn, CURLOPT_URL, $url); 
curl_setopt($cn, CURLOPT_RETURNTRANSFER, TRUE); 

$output = curl_exec($cn); 

$aOutput = json_decode($output, TRUE); 
//var_dump($aOutput); 
$curl_error = curl_error($cn); 
print_r($curl_error); 

$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
foreach($aOutput as $key => $data) { 
    var_dump($key['average_price']); 
// var_dump($data[$key]["Average_Price"]); 
// $sql = "INSERT INTO Market('type_id', 'average_price', 'adjusted_price') 
//  VALUES ($data);"; 
    } 
    array(10763) { 
    [0]=> 
    array(3) { 
    ["average_price"]=> 
    float(381907.23) 
    ["adjusted_price"]=> 
    float(383184.18) 
    ["type_id"]=> 
    int(32772) 
    } 
    [1]=> 
    array(3) { 
    ["average_price"]=> 
    float(54090.07) 
    ["adjusted_price"]=> 
    float(57340.16) 
    ["type_id"]=> 
    int(32774) 
    } 

Я пытаюсь добавить весь этот многомерный массив в свою базу данных. Главное, с чем я столкнулся, это петля foreach.Добавление ответа RestAPI в базу данных MySQL

Я попытался $ array [$ key] [$ column] и многие другие способы, но я только получаю NULL при сбросе переменной.

Я попытался, $ key ['average_price'] и т. Д. Все еще возвращает null.

+1

Внутри вашего foreach, '$ key ['average_price']' и т. д. должен отлично работать – WillardSolutions

+0

, какая структура вашей '$ aOutput'? Я предлагаю вам получить данные из '$ data ['average_price']' вместо '$ key', который, скажем, скалярный. Ваша петля представляет каждый элемент '$ aOutput' как' $ key' и '$ data', где' $ key' - это индекс массива (в этом частном случае), а '$ data' - сам хеш. – Wizard

ответ

0

Вы получаете $ key и $ data, запутанные.

Самый простой, если вы аннотировать его:

Если массив $ aOutput является

array(10763) { 
    [0]=> 
     array(3) { 
      ["average_price"]=>float(381907.23) 
      ["adjusted_price"]=>float(383184.18) 
      ["type_id"]=>int(32772) 
     } 
    [1]=> 
     array(3) { 
      ["average_price"]=>float(54090.07) 
      ["adjusted_price"]=>float(57340.16) 
      ["type_id"]=>int(32774) 
     } 
    .... 

затем

foreach($aOutput as $key => $data) { 
    // $key = 0 
    // $data = array(3) { 
      ["average_price"]=>float(381907.23) 
      ["adjusted_price"]=>float(383184.18) 
      ["type_id"]=>int(32772) 
     } 
    // So what you want is $data['average_price'] 

Вы можете упростить это, даже не используя ключ Hte, просто сделать

foreach($aOutput as $data) { 
    // $data = array(3) { 
      ["average_price"]=>float(381907.23) 
      ["adjusted_price"]=>float(383184.18) 
      ["type_id"]=>int(32772) 
     } 
    // So what you want is $data['average_price'] 
Смежные вопросы