7

私は持っています

  • チュートリアル1これを作成する方法
  • チュートリアル21これを作成する方法
  • チュートリアル2これを作成する方法
  • チュートリアル3これを作成する方法

そして私は必要です

  • チュートリアル01これを作成する方法
  • チュートリアル21これを作成する方法
  • チュートリアル02これを作成する方法
  • チュートリアル03これを作成する方法

だから私はそれらを正しく注文することができます。(1桁の数字が見つかった場合は先行0を追加)

変換するphpメソッドは何でしょうか?

前もって感謝します

注-最初に1桁の数字のみを識別し、次に先行ゼロを追加することを確認してください

4

3 に答える 3

11

str_pad()

echo str_pad($input, 2, "0", STR_PAD_LEFT);

sprintf()

echo sprintf("%02d", $input);
于 2012-07-26T00:29:09.127 に答える
4

DBからのものである場合、これはSQLクエリでそれを行う方法です。

lpad(yourfield, (select length(max(yourfield)) FROM yourtable),'0') yourfield

これにより、テーブルの最大値が取得され、先行ゼロが配置されます。

ハードコーディングされている場合(PHP)、str_pad()を使用します

str_pad($yourvar, $numberofzeros, "0", STR_PAD_LEFT);

これは私がオンラインのphpコンパイラで行ったことの小さな例であり、動作します...

$string = "Tutorial 1 how to";

$number = explode(" ", $string); //Divides the string in a array
$number = $number[1]; //The number is in the position 1 in the array, so this will be number variable

$str = ""; //The final number
if($number<10) $str .= "0"; //If the number is below 10, it will add a leading zero
$str .= $number; //Then, add the number

$string = str_replace($number, $str, $string); //Then, replace the old number with the new one on the string

echo $string;
于 2012-07-26T00:32:32.520 に答える
0

あなたの目標が自然順を行うことであるなら、人間がそうするように、なぜただ使うのではないのですか?strnatcmp

$arr = [
    'tutorial 1 how to make this',
    'tutorial 21 how to make this',
    'tutorial 2 how to make this',
    'tutorial 3 how to make this',
];
usort($arr, "strnatcmp");
print_r($arr);

上記の例では、次のように出力されます。

Array
(
    [0] => tutorial 1 how to make this
    [1] => tutorial 2 how to make this
    [2] => tutorial 3 how to make this
    [3] => tutorial 21 how to make this
)
于 2022-01-11T13:01:56.103 に答える