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

如何用PHP explode()函数提取键值对中的数值组成数组?

提取PHP explode()结果中的数值数组

嘿,这事儿好办!针对你给出的字符串,我给你几个实用的方法,轻松把那些数值提取出来组成新数组:

方法一:foreach循环遍历处理(直观易懂)

这是最容易理解的方式,一步步处理每个键值对:

$line = 'dd=541;nn=874;cc=21;mm=95;tt=41';
$lineexp = explode(';', $line);
$values = [];

foreach ($lineexp as $item) {
    // 把每个键值对按=分割,取后面的数值部分转成整数
    $parts = explode('=', $item);
    $values[] = (int)$parts[1];
}

print_r($values);

执行后就能得到你想要的 [0 => 541, 1 => 874, 2 => 21, 3 => 95, 4 => 41],而且每个元素都是整数类型。

方法二:array_map简化写法(简洁高效)

如果喜欢更紧凑的代码,用array_map批量处理数组元素就行:

$line = 'dd=541;nn=874;cc=21;mm=95;tt=41';
$lineexp = explode(';', $line);

$values = array_map(function($item) {
    return (int)explode('=', $item)[1];
}, $lineexp);

print_r($values);

一行核心代码搞定,省去了foreach的循环结构,代码更简洁。

方法三:增加异常判断(健壮性更强)

如果担心输入字符串可能存在格式问题(比如某个元素没有=符号,或者后面不是数字),可以加个判断确保程序不会报错:

$line = 'dd=541;nn=874;cc=21;mm=95;tt=41';
$lineexp = explode(';', $line);
$values = [];

foreach ($lineexp as $item) {
    $parts = explode('=', $item);
    // 先检查分割后是否有数值部分,且是有效数字
    if (isset($parts[1]) && is_numeric($parts[1])) {
        $values[] = (int)$parts[1];
    }
}

print_r($values);

这种写法能应对一些不规范的输入,避免出现索引不存在或者类型转换错误的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:56:34