繁体   English   中英

将字符串拆分为数组并按块显示

[英]Splitting String into array and display it by chunk

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-千粒重FLOWER RECT镜框”

我有这行代码将我的字符串拆分为数组。 我想要做的是获取前三个单词“ LR-147-TKW”并将其存储到变量中。 我怎样才能做到这一点? 我的数组输出是0] => BR [1] => 139 [2] => TKW [3] => DRESSER [4] => BUFFET [5] => MIRROR

您可以使用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
)

*/
?>

这实际上可以为您提供当前输入的技巧。 执行以下代码行后,$ tmp将包含LR-147-TKW:

list($tmp) = explode(' ', $input);

如何使用explode

$arr = explode(' ',$file);
echo arr[0];

对于这样一个简单的任务,使用preg_split有点preg_split正...

如果要避免使用数组,可以使用strpossubstr完成

$pos = strpos($file, ' ');
echo substr('abcdef', 0, $pos); 

这是因为preg_split("/[\\s,-]+/",...在可能出现逗号,减号或空格的地方分割您的字符串。将其更改为preg_split("/[\\s,]+/",...) ,它应该给您正确的数组。

请注意,如果这样做,函数将不会拆分WELL-SPOKEN类的词。 它将成为数组中的一项。

考虑到您的字符串具有相同的模式。

$ str =“ LR-147-TKW花式镜框”;

$ str1 = explode('',$ str);

echo $ str1 [0];

添加到您的代码:

$tmp = array_slice($tmp,0,3);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM