2017-07-26 10 views
2

変数に保持されているデータをソートしようとしています。私はまずそれを配列に変換し、それを昇順でソートしようとしますが、動作していないようです。ここでPHPスクリプトが配列をソートしないのはなぜですか?

は私のコード

$str = '"10:A", "11:Q", "12:V", "13:A", "14:G", "15:I", "16:E", "17:D", "18:N", "19:R", "1:A", "20:U", "2:X", "3:C", "4:D", "5:R", "6:U", "7:V", "8:I", "9:S"'; 
$cars = (explode(",",$str)); 
$cars = array($cars); 

sort($cars, 1); 
$clength=count($cars); 
for($x=0;$x<$clength;$x++) 
    { 
    echo $cars[$x]; 
    echo "<br>"; 
    } 

このAny回避策ですか?

+0

ここで、ソートするコードは? –

+0

$ str = '"10:A"、 "11:Q"、 "12:V"、 "13:A"、 "14:G"、 "15:I" 16:E、17:D、18:N、19:R、1:A、20:U、2:X、3:C、 「4:D」、「5:R」、「6:U」、「7:V」、「8:I」、「9:S」、 $ cars =(explode( "、"、$ str)); asort($ cars、1); $ clength = count($ cars); for($ x = 0; $ x <$ clength; $ x ++) { echo $ cars [$ x]; エコー "
"; } –

答えて

0

トライrsort

$str = '"10:A", "11:Q", "12:V"'; 
    $cars = (explode(",",$str)); 

    rsort($cars); 
    $clength=count($cars); 
    for($x=0;$x<$clength;$x++) 
     { 
     echo $cars[$x]; 
     echo "<br>"; 
     } 
0

あなたはこの試みる数に応じてソートする場合:私は気づいた物事のカップルがあります

<?php 
function my_sort($a,$b) 
{ 
    $intval_a = filter_var($a, FILTER_SANITIZE_NUMBER_INT); 
    $intval_b = filter_var($b, FILTER_SANITIZE_NUMBER_INT); 
    if(intval($intval_a) > intval($intval_b)) 
    return 1; 
} 
$str = '"10:A", "11:Q", "12:V", "13:A", "14:G", "15:I", "16:E", "17:D", "18:N", "19:R", "1:A", "20:U", "2:X", "3:C", "4:D", "5:R", "6:U", "7:V", "8:I", "9:S"'; 
$cars = explode(',',$str); 
$cars = ($cars); 

usort($cars, "my_sort"); 
$clength=count($cars); 
for($x=0;$x<$clength;$x++) 
{ 
    echo $cars[$x]; 
    echo "<br>"; 
} 
0

を。まず、配列を生成する文字列を分解しました。次に、その配列を別の配列に入れて、それをソートしようとしています。あなたはライン$cars = array($cars);

私はまた、それらを並べ替えるしようとする前に、文字列からの引用符とスペースを削除するお勧めを削除する必要がありますので、あなたは、例えば、10:A代わりの"10:A"に並べ替えを行っています。

もう1つの機能は、実行する並べ替えのタイプを定義する2番目のパラメータとしてフラグを取る必要があることです。使用可能なフラグについては、docsを参照してください。 A、2:X、3:A、10:C ...

代わり

1の私は、あなたはそれが

1ソートしたい推測しています: A、11:Q ...

この場合、SORT_NATURALフラグを使用する必要があります。 (またはnatsortfunctionを使用することもできます)。

これらの変更は、次のコードを与えるだろう:

$str = '"10:A", "11:Q", "12:V", "13:A", "14:G", "15:I", "16:E", "17:D", "18:N", "19:R", "1:A", "20:U", "2:X", "3:C", "4:D", "5:R", "6:U", "7:V", "8:I", "9:S"'; 
$str = str_replace(array('"', ' '), '', $str); 
$cars = explode(",",$str); 

sort($cars, SORT_NATURAL); 
$clength = count($cars); 
for($x = 0; $x < $clength; $x++) { 
    echo $cars[$x]; 
    echo "<br>"; 
} 
0

使用natsort()関数

$str = '"10:A", "11:Q", "12:V", "13:A", "14:G", "15:I", "16:E", "17:D", "18:N", "19:R", "1:A", "20:U", "2:X", "3:C", "4:D", "5:R", "6:U", "7:V", "8:I", "9:S"'; 
$cars = (explode(",",$str)); 

natsort($cars); 
echo "<pre>"; print_r($cars); 
foreach($cars as $car) 
{ 
    echo $car."<br>"; 
} 

Check here

これが役立つことを願っています。

関連する問題