foreach($files as $file) {
$xname = basename($file['name'],'.jpg');
$tmp = preg_split("/[\s,-]+/",$xname,-1, PREG_SPLIT_NO_EMPTY);
echo "<pre>";
print_r($tmp);
echo "</pre>";
这里是示例字符串“LR-147-TKW FLOWER RECT MIRROR FRAME”
我有这行代码将我的字符串拆分为数组。我想要的是获得前三个单词“LR-147-TKW”并将其存储到变量中。我怎么能实现这个目标?
我的数组输出是0] => BR
[1] => 139
[2] => TKW
[3] => DRESSER
[4] => BUFFET
[5] => MIRROR
答案 0 :(得分:1)
您可以使用explode(),以下是一些示例:
<?php
$str = 'LR-147-TKW FLOWER RECT MIRROR FRAME';
$parts = explode(' ',$str);
print_r($parts);
/*
Array
(
[0] => LR-147-TKW
[1] => FLOWER
[2] => RECT
[3] => MIRROR
[4] => FRAME
)
*/
$serial_parts = explode('-',$parts[0]);
print_r($serial_parts);
/*
Array
(
[0] => LR
[1] => 147
[2] => TKW
)
*/
$full = array_merge($serial_parts,$parts);
print_r($full);
/*
Array
(
[0] => LR
[1] => 147
[2] => TKW
[3] => LR-147-TKW
[4] => FLOWER
[5] => RECT
[6] => MIRROR
[7] => FRAME
)
*/
?>
答案 1 :(得分:0)
这实际上是你当前输入的技巧。执行这行代码后,$ tmp将包含LR-147-TKW:
list($tmp) = explode(' ', $input);
答案 2 :(得分:0)
如何使用explode
:
$arr = explode(' ',$file);
echo arr[0];
使用preg_split
对于这么简单的任务来说有点过分了......
$pos = strpos($file, ' ');
echo substr('abcdef', 0, $pos);
答案 3 :(得分:0)
这是因为preg_split("/[\s,-]+/",...
将字符串拆分为逗号,减号或空格。将其更改为preg_split("/[\s,]+/",...)
,它应该为您提供正确的数组。
请注意,如果您这样做,您的功能将不会拆分WELL-SPOKEN
之类的字词。它将成为您阵列中的一个条目。
答案 4 :(得分:0)
考虑你的字符串有相同的模式。
$ str =“LR-147-TKW FLOWER RECT MIRROR FRAME”;
$ str1 = explode('',$ str);
echo $ str1 [0];
答案 5 :(得分:-1)
添加到您的代码中:
$tmp = array_slice($tmp,0,3);