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

如何从PHP数组中获取字符串类型id的最大值与最小值

解决方案

要解决这个问题,你可以按以下步骤实现:

步骤1:提取并解析JSON数据

每个数组元素的n或0属性值是固定前缀+JSON格式的字符串,首先要剥离前缀(比如artefact[10.3]),只保留后面的JSON部分,再解析成可操作的对象/数组。

步骤2:收集所有ID并转换为数值类型

ID是以字符串形式存储的数字,直接比较字符串会出现逻辑错误(比如字符串"10"会被认为比"2"小),所以必须先转成整数再收集。

步骤3:计算最大值和最小值

用PHP内置的max()和min()函数对收集到的ID数值数组进行计算。

完整代码示例

<?php
// 假设$data是你提供的目标数组
$ids = [];

foreach ($data as $item) {
    // 提取JSON部分:定位第一个'{'的位置,截取后续内容
    $jsonStr = substr($item->n, strpos($item->n, '{'));
    // 解析JSON为对象
    $obj = json_decode($jsonStr);
    // 将ID转为整数并加入数组
    $ids[] = (int)$obj->id;
}

// 计算最大和最小ID
$maxId = max($ids);
$minId = min($ids);

// 输出结果
echo "最小ID:{$minId}\n";
echo "最大ID:{$maxId}\n";
?>

补充说明

  • 若前缀格式不确定,也可以用正则表达式匹配JSON部分,适配性更强:
preg_match('/\{.*\}/', $item->n, $matches);
$jsonStr = $matches[0];
  • 若JSON格式可能存在异常,可添加错误处理,比如用json_last_error()排查解析问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:50:54