2013-10-06 2 views
0

Я немного поиграл с API Биткойна и, наконец, взаимодействовал с моим локальным сервером биткойнов.Как разобрать этот массив JSON в PHP?

Теперь следующий код:

$bitcoin->listreceivedbyaccount(); 

печатает следующее:

Array 
(
    [0] => Array 
     (
      [account] => root213 
      [amount] => 1 
      [confirmations] => 3 
     ) 

) 

Как я могу напечатать или работать с [счет] или [сумма], например?

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

Заранее спасибо.

+2

Если вы не знаете, как использовать массивы, я думаю, вы должны прочитать учебник перед тем, как создавать программы. – Oriol

ответ

0
/** 
* Firstly collect the data 
* as an accessible variable 
**/ 
$SomeVar = $bitcoin->listreceivedbyaccount(); 

/** 
* Print the contents for just demonstration! 
* (Dont use print_r() in production!) 
**/ 
print_r($SomeVar); 
Array 
(
    [0] => Array 
     (
      [account] => root213 
      [amount] => 1 
      [confirmations] => 3 
     ) 

) 

Доступ к 'Счет'

echo $SomeVar[0]["account"]; //echos root213 

Доступ к 'Сумма'

echo $SomeVar[0]["amount"]; //echos 1 

Таким образом, с этого момента, вы можете просто передать эти снова, как своей собственной переменной и т.д. =)

+0

Сейчас я чувствую себя невероятно глупо, но я благодарю вас. Значит, это всего лишь иерархический тип? – Dutchiavelli

+0

Yea =) Хотя, очевидно, по мере того, как деревья становятся глубже, вам нужно получить к ним доступ через петли и т. Д., И не волнуйтесь, мы все начинаем где-то! С чем я могу помочь? – MackieeE

+0

Nah, я столкнулся с самим собой, когда вы разместили это, потому что это в основном то, что я делал с моими SQL-запросами: например, echo $ row ['name']; и т.д – Dutchiavelli

1
$data = $bitcoin->listreceivedbyaccount(); 

$account = $data[0]['account']; 
$amount = $data[0]['amount']; 
0

Вот один из способов, если вы нт работать с несколькими значениями:

$data = $bitcoin->listreceivedbyaccount(); 
$count = count($data); 
// Avoid errors 
$amounts = array(); 
// Avoid errors 
$confirmations = array(); 
for ($i = 0; $i < $count; $i++) { 
    $amounts[] = $data[$i]['amount']; 
    $confirmations[] = $data[$i]['confirmations']; 
} 
foreach ($amounts as $amount) { 
    // Do something, like: 
    // print $amount; 
} 
1
$arrJSON = $bitcoin->listreceivedbyaccount(); 
foreach($arrJSON as $arr) { 
    print($arr['account']); 
    print($arr['amount']);   
} 
0

Вот еще один вариант, я использую все время для преобразования не-массивы массивов:

/** 
* Convert a string, number, or object into an array. 
* Especially useful for objects such as those that 
* come from simplexml_load_file(), etc. 
* 
* @param mixed $non_array 
* Any string, number, or object. 
* 
* @return 
* An "arrayified" version of $non_array. At minimum, 
* this should always return an empty array. 
*/ 
function arrayify($non_array) { 
    if (empty($non_array) && $non_array !== 0) { 
    return array(); 
    } 
    return unserialize(serialize(json_decode(json_encode((array) $non_array), 1))); 
} 

Затем использовать его так, чтобы извлечь данные в формате JSON :

$data = arrayify($bitcoin->listreceivedbyaccount()); 
print_r($data); 
Смежные вопросы