簡體   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