私は次の配列を持っています:
Array
(
[0] => 147
[1] => hello
[2] => Asia/Kolkata
[3] => Upcoming
)
Array
(
[0] => 148
[1] => hello world
[2] => Asia/Karachi
[3] => Live
)
Array
(
[0] => 147
[1] => ABCD
[2] => Asia/Colombo
[3] => NA
)
上記の配列はデータベースから取得され、最後の 6 番目の値は API から動的に取得されます。配列プッシュを使用して、その値をデータベース配列にプッシュしました。
以下のコードを参照してください。
function compareArrayItems($a, $b) {
$order = array(
"Live",
"Upcoming",
"NA"
);
$aWeight = array_search($a[9], $order);
$bWeight = array_search($b[9], $order);
if ($aWeight === false || $bWeight === false || $aWeight === $bWeight)
return 0;
return $aWeight < $bWeight ? 1 : - 1;
}
$sArr = array();
while ($kj = mysqli_fetch_array($result)) {
$arrk = get_status_for_hashtag($kj['start_time'], $kj['end_time'], $kj['day'], $kj['timezone']);
array_push($kj, $arrk);
$sArr[] = $kj;
}
usort($sArr, "compareArrayItems");
ここでのステータスは、近日中、ライブ中、NA という最後の値に他なりません。現在、データベースに従って通常の方法で並べ替えが行われていますが、ステータスが最後の値を意味するに従ってこれを並べ替えたいと考えています。ライブが最初に来て、次の 2 番目と NA 3 番目に来てほしいです。ステータスがデータベースから取得されていないため、オーダーバイクエリを使用することはできません。それはAPIから来ており、データベース配列とマージするだけです。
あなたが私の主張を理解してくれることを願っています。
ありがとう。