谁能解释一下如何使用php preg_match将一个字符串分解成一个数组,从字符串的开头到第一个反斜杠?
我有一个数组:
(
[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
)我想创建另一个数组,这样我就可以
[0] => s00473276
[1] => t00034422 etc...发布于 2012-03-07 15:42:20
$new_array = array();
foreach($your_array as $element)
list($new_array[]) = explode('\\', $element);
print_r($new_array);发布于 2012-03-07 15:40:43
最简单/最“干净”(警告:主观)的解决方案可能是array_map()和explode()
<?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);输出:
Array
(
[0] => s00473276
[1] => t00034422
[2] => 209676
[3] => s00473331
[4] => 209672
[5] => t00034415
[6] => s00473268
)(demo)
发布于 2012-03-07 15:43:41
为什么是preg_match()?与array_map()一起使用substr()会更快。
array_map('f', $array);
function f($s)
{
return substr($s, 0, strpos($s, '\\'));
}https://stackoverflow.com/questions/9597489
复制相似问题