将String拆分为数组并按块显示

时间:2012-08-29 06:13:55

标签: php string

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

6 个答案:

答案 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对于这么简单的任务来说有点过分了......

如果您想避开数组,可以使用strpossubstr完成:

$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);