【问题标题】:PHP How to properly merge arrays for following json structurePHP如何为以下json结构正确合并数组
【发布时间】:2021-05-28 22:55:59
【问题描述】:

所以我尝试了很多可能的代码,但似乎找不到合适的解决方案。

首先让我们从希望的数组开始(我会以 json 格式显示它,因为它更容易阅读)

{
    "transaction": {
        "input": [
            {
                "address": "a",
                "value": 4294967295
            },
            {
                "address": "b",
                "value": 51515
            }
        ],
        "output": [
            {
                "address": "aa",
                "value": 551
            },
            {
                "address": "bb",
                "value": 66564
            }
        ]
    }
}

我正在使用 2 个 foreach 循环来获取我想放入 inputsoutputs 的数据

这是我使用的代码:

//Get Output Addresses & Value
$tmp_array = array();
foreach($json['result']['vout'] as $a)
{
    $value = $a['value'];
    $address = $a['scriptPubKey']['addresses'][0];
    
    $tmp_array = array('wallet' => $address, 'value' => $value);
    $input = array_merge($input, $tmp_array);


};

$input = array('inputs' => $tmp_array);
$input = json_encode($input);
print_r($input);

这是我获取数据并尝试将其放入数组的代码。现在我有一个问题,它只添加来自循环的最后一次迭代的数据。我正在尝试获取一个代码,使其具有上述结构。 无论发送什么解决方案,它都应该适用,因此我可以将相同的代码粘贴到另一个用于输出的循环中

【问题讨论】:

    标签: php arrays json


    【解决方案1】:

    您将在循环之后分配$input 变量,其值为$tmp_array,正如您所描述的,这将是最后一次迭代的值。要解决此问题,您应该在开头将 $input 数组初始化为空数组,并将其与新数据合并:

    //Get Output Addresses & Value
    $inputs = array();
    foreach($json['result']['vout'] as $a)
    {
        $value = $a['value'];
        $address = $a['scriptPubKey']['addresses'][0];
        
        $tmp_array = array('wallet' => $address, 'value' => $value);
        $inputs[] = $tmp_array; // push to array
    };
    
    $input = json_encode(array('inputs' => $inputs));
    print_r($input);
    

    【讨论】:

    • 这给出了一个空数组:{"inputs":[]}
    • 当然!我写错了,会修改的。
    • @SamUncle 没问题!如果这解决了您的问题,您能否将答案标记为这样?谢谢。
    猜你喜欢
    • 2013-12-14
    • 2020-01-06
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多