0
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」である最初の 3 単語を取得し、それを変数に格納することです。どうすればこれを達成できますか? 私の配列出力はこれです0] => BR [1] => 139 [2] => TKW [3] => DRESSER [4] => BUFFET [5] => MIRROR

4

6 に答える 6

1

いくつかの例を次に示します

<?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
)

*/
?>
于 2012-08-29T06:26:41.660 に答える
0

これは実際に現在の入力に対してトリックを行います。次のコード行を実行すると、$tmp に LR-147-TKW が含まれます。

list($tmp) = explode(' ', $input);
于 2012-08-29T06:19:58.217 に答える
0

使用方法explode

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

このような単純なタスクを使用するpreg_splitのは少しやり過ぎです...

配列を避けたい場合は、strpossubstrを使用して実行できます。

$pos = strpos($file, ' ');
echo substr('abcdef', 0, $pos); 
于 2012-08-29T06:20:03.447 に答える
0

これはpreg_split("/[\s,-]+/",...、コンマ、マイナス、またはスペースが発生した場所で文字列を分割するためです。に変更するpreg_split("/[\s,]+/",...)と、正しい配列が得られます。

これを行うと、関数は のような単語を分割しないことに注意してくださいWELL-SPOKEN。配列内の 1 つのエントリになります。

于 2012-08-29T06:21:19.247 に答える
0

あなたの文字列が同じパターンを持っていると考えてください。

$str = "LR-147-TKW フラワー レクト ミラー フレーム";

$str1 = 爆発(' ',$str);

echo $str1[0];

于 2012-08-29T06:21:46.547 に答える
-1

コードに追加します。

$tmp = array_slice($tmp,0,3);
于 2012-08-29T06:20:39.697 に答える