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

PHP中JSON对象填充数组及零件搜索仅返回首个结果的问题

问题解答

1. 解决搜索仅返回首个匹配项的问题

你的getPartByName函数找到第一个符合条件的零件后就直接return了,所以只会返回单个匹配项。要获取所有匹配结果,需要修改函数来收集所有符合条件的零件:

修改后的函数代码

function getPartByName($name)
{
    $parts = getParts();
    $matchedParts = []; // 创建空数组存储所有匹配项
    foreach ($parts as $part) {
        if (str_starts_with($part['name'], $name)) {
            $matchedParts[] = $part; // 将匹配零件加入数组
        }
    }
    return $matchedParts; // 返回所有匹配项的数组
}

调用函数并输出所有结果

调用时需要循环遍历返回的数组,逐个输出匹配内容(这里以输出名称和价格为例,你可以扩展成HTML表格形式):

$searchedPart = $_POST['searched-part'];
$partToBeSearched = trim($searchedPart); 
$matchedParts = getPartByName($partToBeSearched);

// 循环输出所有匹配零件
foreach ($matchedParts as $part) {
    echo "名称:{$part['name']},价格:{$part['price']}<br>";
    // 如果要生成HTML表格,可替换为对应的<tr><td>标签
}

2. 如何用JSON对象填充数组

在PHP中,常用以下两种方式实现:

方式一:解析JSON文件/字符串为数组

通过json_decode函数将JSON格式的内容解析为PHP数组,第二个参数设为true会得到关联数组(对应JSON对象):

// 从JSON文件读取内容并解析为数组
$jsonContent = file_get_contents(__DIR__ . '/parts.json');
$partsArray = json_decode($jsonContent, true);
// $partsArray就是由JSON对象填充的数组

方式二:手动构建包含JSON对象的数组

如果你需要手动组装,可以将解析后的JSON对象(关联数组)逐个添加到目标数组中:

$partsArray = [];

// 模拟一个JSON对象解析后的关联数组
$newPart = [
    "name" => "新零件",
    "category" => "新类别",
    "price" => "100"
];

$partsArray[] = $newPart; // 将对象添加到数组中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:52:51