PHP 访问双层数组时出错


php error accessing double layer array

我的数据位于返回值的第二层中,我正在尝试访问各个元素。 数组 ( [成功] => 1 [返回] => 数组 ( [0] => 数组我尝试了['return'],因为它是其中的关键,是我需要的,但得到了相同的错误或明显更糟。

错误:

Array to string conversion in orders.php on line 10

法典:

<?php
 $id = $argv[1];  //variable for inbound
 require_once('phpPlay.php');
 $result = api_query("mytrades", array("marketid" => $id));
 foreach( $result as $x) {
                echo $x;
 }
?>

数据前 5 行:

Array
(
    [success] => 1
    [return] => Array
        (
            [0] => Array
                (
                    [tradeid] => 74038377
                    [tradetype] => Sell
                    [datetime] => 2014-11-12 16:05:32
                    [tradeprice] => 0.00675000
                    [quantity] => 22.18670000
                    [fee] => -0.00007488
                    [total] => 0.14976023
                    [initiate_ordertype] => Buy
                    [order_id] => 197009493
                )
            [1] => Array
                (
                    [tradeid] => 73687280
                    [tradetype] => Buy
                    [datetime] => 2014-11-09 03:38:13
                    [tradeprice] => 0.00816988
                    [quantity] => 0.00100000
                    [fee] => 0.00000002
                    [total] => 0.00000817
                    [initiate_ordertype] => Buy
                    [order_id] => 194824864
                )
            [2] => Array
                (
                    [tradeid] => 73684313
                    [tradetype] => Sell
                    [datetime] => 2014-11-09 02:57:41
                    [tradeprice] => 0.00808034
                    [quantity] => 0.00100000
                    [fee] => 0.00000000
                    [total] => 0.00000808
                    [initiate_ordertype] => Buy
                    [order_id] => 194803992
                )
            [3] => Array
                (
                    [tradeid] => 73653019
                    [tradetype] => Sell
                    [datetime] => 2014-11-08 17:53:12
                    [tradeprice] => 0.00793991
                    [quantity] => 0.00010000
                    [fee] => 0.00000000
                    [total] => 0.00000079
                    [initiate_ordertype] => Buy
                    [order_id] => 194559503
                )
            [4] => Array
                (
                    [tradeid] => 73652717
                    [tradetype] => Sell
                    [datetime] => 2014-11-08 17:50:13
                    [tradeprice] => 0.00793989
                    [quantity] => 0.00100000
                    [fee] => 0.00000002
                    [total] => 0.00000794
                    [initiate_ordertype] => Sell
                    [order_id] => 194559596
                )

问题是,对于上面代码中的 echo $x 语句,$x 是一个数组,而不是一个字符串。

echo函数需要一个字符串,所以你得到的错误是因为 PHP 自动尝试将传递给echo的参数转换为字符串,但它失败了,因为你传递了一个数组。

试试这个:

if (isset($result['return'])) {
    foreach($result['return'] as $result_item) {
        echo(var_export($result_item, true));
    }
} else {
    echo 'No results';
}