You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中从JSON数据提取最早、最晚时间价格并计算差价百分比

从PHP数组中获取最早/最晚时间的价格并计算百分比差值

嘿,我来帮你搞定这个需求!要实现这个功能,咱们可以分几步来:

1. 按时间对数组进行排序

首先,咱们需要把你的数组按照time字段排序,这样最早的记录会排在数组开头,最晚的在末尾。PHP里可以用usort()函数配合自定义的排序规则来实现:

// 假设你的原始数组是 $priceData
usort($priceData, function($a, $b) {
    // 将时间字符串转成时间戳进行比较
    $timeA = strtotime($a['time']);
    $timeB = strtotime($b['time']);
    return $timeA - $timeB; // 升序排列,最早的在前
});

2. 获取最早和最晚时间对应的价格

排序完成后,咱们就能轻松拿到最早和最晚的记录了:

// 获取最早(最旧)的记录及价格
$oldestRecord = reset($priceData);
$oldPrice = (float)$oldestRecord['price'];

// 获取最晚(最新)的记录及价格
$newestRecord = end($priceData);
$newPrice = (float)$newestRecord['price'];

这里把字符串类型的price转成了浮点数,方便后续计算。

3. 计算价格的百分比差值

用这个公式就能算出百分比变化:

百分比差值 = ((最新价格 - 旧价格) / 旧价格) * 100

对应的PHP代码(还处理了除数为0的异常情况):

if ($oldPrice == 0) {
    echo "旧价格不能为0,无法计算百分比差值";
} else {
    $percentageChange = (($newPrice - $oldPrice) / $oldPrice) * 100;
    // 保留两位小数让结果更美观
    $percentageChange = number_format($percentageChange, 2);
    echo "价格百分比变化:{$percentageChange}%";
}

完整示例代码

把上面的步骤整合起来,完整代码如下:

// 模拟你的原始数组数据
$priceData = [
    ['id' => '1201', 'coins_id' => '22', 'price' => '11.42033', 'time' => '2018-04-19 09:45:56'],
    ['id' => '9391', 'coins_id' => '22', 'price' => '17.87132', 'time' => '2018-04-19 10:09:17'],
    // 其他更多数据...
];

// 按时间升序排序
usort($priceData, function($a, $b) {
    return strtotime($a['time']) - strtotime($b['time']);
});

// 获取最早和最晚的价格
$oldPrice = (float)reset($priceData)['price'];
$newPrice = (float)end($priceData)['price'];

// 计算百分比差值
if ($oldPrice != 0) {
    $percentageChange = number_format((($newPrice - $oldPrice) / $oldPrice) * 100, 2);
    echo "从 {$oldPrice} 到 {$newPrice},价格变化了 {$percentageChange}%";
} else {
    echo "无法计算:旧价格为0";
}

这样就能轻松得到你想要的结果啦!

内容的提问来源于stack exchange,提问作者major697

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:58:23