0

私のphpコードには、単語で始まり、その後に(乱数)番号が続く変数の配列があります。

x[0] = 'justaword8'
x[1] = 'justaword5'
x[2] = 'justaword4'
etc.

foreach ループを使用する必要があることはわかっていますが、各単語の末尾にある数字を抽出するにはどうすればよいですか? (私は preg_match() を使用できると思いますが、その関数を正確に指定する方法がわかりませんか?)

4

5 に答える 5

4

preg_match()数値の長さは 1 桁または 2 桁の間で変化するため、次のように使用できます。

foreach( $array as $x) {
    preg_match( '/(\d{1,2})$/', $x, $match);
    echo "The number is: " . $match[1];
}

ただし、プレフィックスは事前にわかっているため、直接削除するだけです (Marc B のコメントに従って、使用例を示します)。

$prefix = "justaword";
$length = strlen( $prefix);

foreach( $array as $x) {
    echo "The number is: " . substr( $x, $length);
}
于 2013-08-29T16:00:53.983 に答える
1

これを使用してみてください: Working eval.in (これは 1 桁で機能します)

foreach($x as $key => $value)
    echo substr($value,-1);

2桁の場合を更新しました。正規表現なしでは少し粗雑に見えますが、何らかの理由で正規表現を使用したくない場合は問題なく動作します:(作業 eval.in )

<?php

$x[0] = 'justaword8';
$x[1] = 'justaword52';
$x[2] = 'justaword4';

foreach($x as $key => $value){
     $y = substr($value,'-2:');
     if(is_numeric($y)) // if last 2 chars are number
         echo $y; // return them
     else
         echo substr($y,1); // return only the last char
}

?>

「justaword」が定数の場合はstr_replace('justaword','',$x[0]);、それを削除するために使用できます。

于 2013-08-29T16:01:18.020 に答える
0

あなたはこれを試すことができます.1桁だけです

$str="justaword5";
echo $last_dig=substr($str,strlen($str)-1,strlen($str));
于 2013-08-29T16:04:36.217 に答える