2017-06-28 2 views
-1

ich einen Anruf bekommen haben API gehen, ich bin die Informationen zurück, wie dies in einer Reihe bekommenPHP Array von API erhalten Info von Array

wenn ich benutze:

print_r($balances); 

das, was Wille ist drucken

array ([1CR] => Array ([available] => 0.00000000 [onOrders] => 0.00000000 [btcValue] => 0.00000000) [ABY] => Array ([available] => 0.00000000 [onOrders] => 0.00000000 [btcValue] => 0.00000000) [AC] => Array ([available] => 0.00000000 [onOrders] => 0.00000000 [btcValue] => 0.00000000)) 

jetzt will ich nur bekommen die Informationen von nur einem dieser

also lassen Sie uns sagen, ich will [AC] dann mit [AC] iw ant erhalten die folgenden Informationen in eine varaible

available 
onOrders 
btcValue 

, wenn ich das das Array wie folgt ausdrucken:

print_r($balances[AC]); 

ich das bekommen, wie ich wollte, und gibt diese:

Array ([available] => 0.00000000 [onOrders] => 0.00000000 [btcValue] => 0.00000000) 

aber wenn ich versuche, die Informationen von oben in eine Variable wie folgt zu bekommen:

foreach($balances[AC] as $key=>$value){ 
    extract($value); 
    echo $onOrders." <br>"; 
} 

es kommt wieder leer, aber wenn ich diese verwenden es funktioniert und zeigt das gesamte Array aus der curl Anfrage

foreach($balances as $key=>$value){ 
    extract($value); 
    echo $onOrders." <br>"; 
} 

kommt wieder so was mache ich falsch? Ich möchte nur einer dieser Währungen erhalten nicht alle, und ich will in einem Diagramm


ich für alle anderen irgendwie die Antwort stecken enthalten sind, zu verwenden, um der Lage sein, die Anzeige und Code verwendet i

$available=$balances['BTC']['available']; 
$onOrders=$balances['BTC']['onOrders']; 
$btcValue=$balances['BTC']['btcValue']; 

echo "you have " .$available." BTC Available with " .$onOrders." on Orders, with a BTC Value of " .$btcValue; 

foreach($balances['AC'] as $key=>$value){ 
    echo $value." <br>"; 
} 

EDIT:

+0

Wenn Sie eine manuelle öffnen Sie dieses erste Argument 'extract' sehen ist __array__. In '$ balances [AC] als $ key => $ value' '$ value' ist __not__ array. Einfach, nicht wahr? –

+0

Ja, warum verwenden Sie Extrakt in erster Linie? Ich bin mir auch nicht sicher, ob Sie Zitate innerhalb der '[]' wie '$ balances ['AC']' – odedta

+0

mit extrahieren, um die Informationen in Variablen zu bekommen ... wenn ich das ganze API-Ergebnis verwenden, funktioniert es aber Ich will nicht jeder einer von ihnen nur One –

Antwort

1

Sie extract nicht einfach die value echo verwenden

$ac_var = $balances['AC']; 
extract($ac_var); 

echo $onOrders." <br>"; 
+1

oder speichern Sie es in eine Variable – odedta

+0

Ja ... Kann es auch in Variable speichern als @odedta sagte –

+0

Ok ich möchte als Variable speichern, aber 3 verschiedene Variablen ... so verfügbar onOrders btcValue, jeder ist Diff-Variablen, das ist, warum ich mit Extrakt es am nächsten war, dass ich –

2

Es gibt unendlich viele Möglichkeiten mit Elementen von Arrays zu arbeiten ... Einige Beispiele:

<?php 
$data = [ 
    '1CR' => [ 
     'available' => 0.00000000, 
     'onOrders' => 0.00000000, 
     'btcValue' => 0.00000000 
    ], 
    'ABY' => [ 
     'available' => 0.00000000, 
     'onOrders' => 0.00000000, 
     'btcValue' => 0.00000000 
    ], 
    'AC' => [ 
     'available' => 0.00000000, 
     'onOrders' => 0.00000000, 
     'btcValue' => 0.00000000 
    ] 
]; 

// tradition and probably best approach 
foreach ($data['AC'] as $key=>$value) { 
    var_dump($value); 
} 

// elegant approach that keeps the values out of the calling scope: 
array_walk($data['AC'], function ($value, $key) { 
    var_dump($value); 
}); 
// a full import, risks collisions 
extract($data['AC']); 
var_dump($available, $onOrders, $btcValue); 

// elegant, fails if elements are in changing order 
list($available, $onOrders, $btcValue) = array_values($data['AC']); 
var_dump($available, $onOrders, $btcValue); 

jedoch bedenken, dass alle Versuche, „Import“ Variablen in dem lokalen Bereich mit dem Risiko der Namensgebung kommen Kollisionen mit bereits vorhandenen Variablen. Dies gilt insbesondere, wenn Sie sich auf externe Daten verlassen müssen, die sich eines Tages in der Struktur ändern können. Normalerweise ist es viel sicherer und einfacher, einfach mit den Referenzen auf die Array-Elemente selbst zu arbeiten, also $data['AC']['available'] und so weiter. Falls Sie Fragen verkürzen wollen, dann einen ausdrücklichen Verweis erstellen: $AC_available = &$data['AC']['available']; ...

+0

sehr gute Erklärung dank def kommt wieder zu diesem wieder –

1

foreach ($ Salden wie $ Aktuell) {

foreach ($ Köter wie $ key => $ value) {
echo $ Schlüssel ." - ".$ Wert;
}

}

+0

Dies ist eine nette Ergänzung zu, ein anderes Buch markiert Bit Code Dank –