2016-04-14 16 views
-5

phpを使用して文字列配列の日付時刻をソートする必要があります。私の文字列はこのように見える、私は最初の日付と時刻をソートしたい。例えば、そのような14_04_2016(日付)と01_00pm_03_00pm(時間は、第1および15_04_2016二になります...)..文字列配列の日付時刻をソートする方法

どれ体はアイデアを持って私を提案してください..事前に

感謝を。

文字列配列:
[0] => 05_00pm_07_00pm | 15_04_2016
[1] => 03_00pm_05_00pm | 15_04_2016
[2] => 07_00pm_09_00pm | 15_04_2016
[3] => 03_00pm_05_00pm | 14_04_2016
[ 4] => 01_00pm_03_00pm | 14_04_2016
[5] => 01_00pm_03_00pm | 15_04_2016
[6] => 01_00pm_03_00pm | 15_04_2016
[7] => 01_00pm_03_00pm | 15_04_2016
[8] => 01_00pm_03_00pm | 15_04_2016
[9] => 01_00pm_03_00pm | 15_04_2016
[10] => 01_00pm_03_00pm | 15_04_2016
[11] => 01_00pm_03_00pm | 15_04_2016
[12] => 01_00pm_03_00pm | 15_04_2016
[13] => 07_00pm_09_00pm | 14_04_2016
[14] => 07_00pm_09_00pm | 16_04_2016
[15] => 01_00pm_03_00pm | 14_04_2016
[16] => 07_00pm_09_00pm | 13_04_2016

+0

お試しください。 @ Neemem Sabasara – RJParikh

+0

@ Ruchish、私は両方の値を爆発させて、マルチソートで試しています。 –

+0

はい。 @ Nemem Sabasara – RJParikh

答えて

1

それはあなたのために働くだろう、このいずれかを試してみてください。

Array 
(
    [0] => 07_00pm_09_00pm|13_04_2016 
    [1] => 01_00pm_03_00pm|14_04_2016 
    [2] => 01_00pm_03_00pm|14_04_2016 
    [3] => 03_00pm_05_00pm|14_04_2016 
    [4] => 07_00pm_09_00pm|14_04_2016 
    [5] => 01_00pm_03_00pm|15_04_2016 
    [6] => 01_00pm_03_00pm|15_04_2016 
    [7] => 01_00pm_03_00pm|15_04_2016 
    [8] => 01_00pm_03_00pm|15_04_2016 
    [9] => 01_00pm_03_00pm|15_04_2016 
    [10] => 01_00pm_03_00pm|15_04_2016 
    [11] => 01_00pm_03_00pm|15_04_2016 
    [12] => 01_00pm_03_00pm|15_04_2016 
    [13] => 03_00pm_05_00pm|15_04_2016 
    [14] => 05_00pm_07_00pm|15_04_2016 
    [15] => 07_00pm_09_00pm|15_04_2016 
    [16] => 07_00pm_09_00pm|16_04_2016 
) 

$array= Array(
    0 => '05_00pm_07_00pm|15_04_2016',1 => '03_00pm_05_00pm|15_04_2016',2 => '07_00pm_09_00pm|15_04_2016',3 => '03_00pm_05_00pm|14_04_2016', 
    4 => '01_00pm_03_00pm|14_04_2016',5 => '01_00pm_03_00pm|15_04_2016',6 => '01_00pm_03_00pm|15_04_2016',7 => '01_00pm_03_00pm|15_04_2016', 
    8 => '01_00pm_03_00pm|15_04_2016',9 => '01_00pm_03_00pm|15_04_2016',10 => '01_00pm_03_00pm|15_04_2016',11 => '01_00pm_03_00pm|15_04_2016', 
    12 => '01_00pm_03_00pm|15_04_2016',13 => '07_00pm_09_00pm|14_04_2016',14 => '07_00pm_09_00pm|16_04_2016',15 => '01_00pm_03_00pm|14_04_2016', 
    16 => '07_00pm_09_00pm|13_04_2016' 
); 
foreach($array as $key=>$row) 
{ 
    $newArr[$key] = explode("|", $row); 
    $timeArray[] = $newArr[$key][0]; 
    $dateArray[] = $newArr[$key][1]; 
} 

array_multisort($dateArray, SORT_ASC, $timeArray, SORT_ASC, $newArr); 

$finalArray = array(); 
foreach($newArr as $key1=>$row1) 
{ 
    $finalArray[] = implode("|",$row1); 
} 
echo "<pre>"; 
print_r($finalArray); 

出力もオンラインエディタで確認してください。 Click Here

+1

はい、それは素晴らしいです..私は適切な結果を得た..私の間違いは、私は値をimplemberedされていない、私は直接フェッチ値を取っています...
ありがとうたくさんの!!!!! –

+0

ありがとうございました... !!!!! –

+0

ようこそ。あなたを助けてうれしい。 – RJParikh

関連する問題