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

PHP判断SSD子串是否属于指定截取字符串及获取其位置的实现方法

实现步骤与PHP代码

1. 前置字符串截取说明

我们首先对两行设备信息按逗号拆分,取第4个和第5个逗号之间的子串(对应拆分后数组索引为4的元素,索引从0开始计数),得到结果如下:

  • 第一行设备截取子串:500GB
  • 第二行设备截取子串:120GB SSD

2. PHP功能实现代码

以下代码同时兼容PHP8及更低版本,可直接运行:

<?php
// 原始设备信息字符串
$device1 = 'IRBIS MB2380 Monoblock, 23.8", Intel Celeron N3350, 4GB, 500GB, Intel HD Graphics 500, Windows 10 Home, black';
$device2 = 'IRU Office P2121 Monoblock, 21.5", Intel Celeron G4900, 4GB, 120GB SSD, Intel UHD Graphics 610, FreeDOS, black [1200026]';

// 封装截取目标子串的方法
function getStorageSubstr($deviceStr) {
    // 按逗号拆分后去除每个字段前后的空格
    $splitParts = array_map('trim', explode(',', $deviceStr));
    // 返回第4和第5个逗号之间的字段
    return $splitParts[4] ?? '';
}

$subStr1 = getStorageSubstr($device1);
$subStr2 = getStorageSubstr($device2);
$searchKey = 'SSD';

// 遍历处理两个子串,实现两项需求
foreach ([$subStr1, $subStr2] as $k => $sub) {
    $deviceNo = $k + 1;
    // 需求1:判断SSD是否存在,兼容低版本PHP写法
    $hasSsd = strpos($sub, $searchKey) !== false;
    echo "设备{$deviceNo}截取子串:`{$sub}`\n";
    echo "是否包含SSD:" . ($hasSsd ? '是' : '否') . "\n";
    if ($hasSsd) {
        // 需求2:获取SSD的索引位置(索引从0开始计数)
        $position = strpos($sub, $searchKey);
        echo "SSD在子串中的索引位置:{$position}\n";
    }
    echo "------------------------\n";
}
?>

3. 运行结果说明

  • 设备1的子串500GB不包含SSD,无对应位置输出
  • 设备2的子串120GB SSD包含SSD,对应索引位置为6,即子串从开头数第7个字符的位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 03:09:00