首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数组开头到反斜杠的preg_match

从数组开头到反斜杠的preg_match
EN

Stack Overflow用户
提问于 2012-03-07 15:37:54
回答 6查看 183关注 0票数 2

谁能解释一下如何使用php preg_match将一个字符串分解成一个数组,从字符串的开头到第一个反斜杠?

我有一个数组:

代码语言:javascript
复制
(
    [0] => s00473276\Soul To Squeeze\Red Hot Chili Peppers
    [1] => t00034422\Soul To Squeeze\Red Hot Chili Peppers
    [2] => 209676\Soul To Squeeze\Red Hot Chili Peppers
    [3] => s00473331\What Is Soul ?\Red Hot Chili Peppers
    [4] => 209672\Show Me Your Soul\Red Hot Chili Peppers
    [5] => t00034415\Show Me Your Soul\Red Hot Chili Peppers
    [6] => s00473268\Show Me Your Soul\Red Hot Chili Peppers
    [7] => s00473233\Out Of Range By Red Hot Chili Peppers\Red Hot Chili Peppers
    [8] => 209603\Get On Top\Red Hot Chili Peppers
    [9] => t00034374\I've Been Down\Red Hot Chili Peppers
)

我想创建另一个数组,这样我就可以

代码语言:javascript
复制
[0] => s00473276
[1] => t00034422 etc...
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-07 15:42:20

代码语言:javascript
复制
$new_array = array();
foreach($your_array as $element)
  list($new_array[]) = explode('\\', $element);

print_r($new_array);
票数 2
EN

Stack Overflow用户

发布于 2012-03-07 15:40:43

最简单/最“干净”(警告:主观)的解决方案可能是array_map()explode()

代码语言:javascript
复制
<?php

$array = array('s00473276\Soul To Squeeze\Red Hot Chili Peppers',
               't00034422\Soul To Squeeze\Red Hot Chili Peppers',
               '209676\Soul To Squeeze\Red Hot Chili Peppers',
               's00473331\What Is Soul ?\Red Hot Chili Peppers',
               '209672\Show Me Your Soul\Red Hot Chili Peppers',
               't00034415\Show Me Your Soul\Red Hot Chili Peppers',
               's00473268\Show Me Your Soul\Red Hot Chili Peppers',
);

function myFunc($item) {
        $parts = explode('\\', $item, 2);

        return $parts[0];
}

$newArray = array_map('myFunc', $array);

print_r($newArray);

输出:

代码语言:javascript
复制
Array
(
    [0] => s00473276
    [1] => t00034422
    [2] => 209676
    [3] => s00473331
    [4] => 209672
    [5] => t00034415
    [6] => s00473268
)

(demo)

票数 2
EN

Stack Overflow用户

发布于 2012-03-07 15:43:41

为什么是preg_match()?与array_map()一起使用substr()会更快。

代码语言:javascript
复制
array_map('f', $array);

function f($s)
{
  return substr($s, 0, strpos($s, '\\'));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9597489

复制
相关文章

相似问题

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