首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中提取ID

从字符串中提取ID
EN

Stack Overflow用户
提问于 2014-02-03 11:58:48
回答 3查看 67关注 0票数 0

我有这样的多个字符串:

13玻璃带数字化器(iPhone 5),106个电池(iPad 4),192 2GB DDR3 1067 MHz (内存)

我不知道如何简单地从字符串提取ID到数组?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-03 12:02:18

你可以尝试:

代码语言:javascript
复制
$input  = '[13] Glass with digitizer (iPhone 5), [106] Battery (iPad 4), [192] 2GB DDR3 1067 MHz (Memory)';
preg_match_all('/\[(\d+)\]/', $input, $matches);
$output = array_map('intval', $matches[1]);

输出:

代码语言:javascript
复制
array (size=3)
  0 => int 13
  1 => int 106
  2 => int 192
票数 2
EN

Stack Overflow用户

发布于 2014-02-03 12:08:31

使用,然后操作数组以摆脱[]

代码语言:javascript
复制
$string = "[13] Glass with digitizer (iPhone 5), [106] Battery (iPad 4), [192] 2GB DDR3 1067 MHz (Memory)";
preg_match_all("/\[[0-9]*\]/",
    $string,
    $out);
array_walk_recursive($out[0], 'cleanSquareBrackets');
print_r($out);

function cleanSquareBrackets(&$element) {
    $element = str_replace(array("[", "]"), "", $element);
}

输出:

代码语言:javascript
复制
Array ( [0] => Array ( [0] => 13 [1] => 106 [2] => 192 ) )
票数 0
EN

Stack Overflow用户

发布于 2014-02-03 12:04:04

代码语言:javascript
复制
$str = "[13] Glass with digitizer (iPhone 5), [106] Battery (iPad 4), [192] 2GB DDR3 1067 MHz (Memory)";
preg_match_all('!\[\d+\]!', $str, $matches);
print_r($matches);

此外,您还可以在一个字符串中获得它。

代码语言:javascript
复制
$numbers = implode(',', $matches[0]);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21526845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档