从API获取PHP数组从数组获取信息

从API获取PHP数组从数组获取信息,php,arrays,Php,Arrays,我有一个API调用,我正在数组中像这样获取信息 如果我使用: print_r($balances); 这就是我们将要打印出来的内容 array ( [1CR] => Array ( [available] => 0.00000000 [onOrders] => 0.00000000 [btcValue] => 0.00000000 ) [ABY] => Array ( [available] => 0.00000000 [onOrders] =&g

我有一个API调用,我正在数组中像这样获取信息

如果我使用:

  print_r($balances); 
这就是我们将要打印出来的内容

  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 ))
现在我只想从其中一个获取信息

假设我想要[AC],然后用[AC]我想把下面的信息放到一个变量中

available
onOrders
btcValue
当我像这样打印阵列时:

print_r($balances[AC]);
我得到了我想要的,并返回了这个:

  Array ( [available] => 0.00000000 [onOrders] => 0.00000000 [btcValue] => 0.00000000 )
但当我试图将上面的信息输入一个变量时,如下所示:

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

不要使用
提取
只需回显

foreach($balances['AC'] as $key=>$value){ 
    echo $value." <br>"; 
}
foreach($balances['AC']作为$key=>$value){
回声$value.“
”; }
编辑:

$ac_var=$balances['ac'];
摘录(ac_var);
echo$onOrders.“
”;
使用数组元素有无数种选择。。。一些例子:

<?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);

如果您打开一本手册,您将看到
extract
的第一个参数是array。在
$balances[AC]中,$key=>$value
$value
不是数组。很简单,不是吗?是的,你为什么要用提取物?另外,我不确定您是否在
[]
中缺少引号,比如
$balances['AC']
使用extract将信息提取到变量中。。。如果我使用整个api结果,它可以工作,但我不想让每个人都有一个只是一个为什么有人给我一个坏分数?我在编码上犯了一个错误,但给出了答案,但展示了我一直在尝试做的事情和不起作用的事情。。。我展示了我所做的工作,不仅仅是要求帮助我。。。SMHI认为您可以获取特定的onOrders值,如$balances['AC']['onOrders']或将其保存到变量中是的…也可以将其保存在变量中为@odedta saidOk我确实希望保存为变量,但有3个不同的变量。。。所以可用的onOrders btcValue,每个都是不同的变量,这就是为什么我使用extract它是我能找到的最接近于Djust
echo$balances['AC']['onOrders']天哪,我有这个,但作为['AC'][2]并没有工作,非常愚蠢的错误谢谢@u_Mulder这也是一个很好的补充,另一本书标记了代码点谢谢
foreach($balances['AC'] as $key=>$value){ 
    echo $value." <br>"; 
}
$ac_var = $balances['AC'];
extract($ac_var);

echo $onOrders." <br>"; 
<?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);
foreach ($balances as $cur ) {

    foreach ( $cur as $key => $value ){
        echo $key ." - ".$value;
    }
}