predisから読み込んだキーと値がソートされており、内容が正しくありません。

WBOY
リリース: 2016-06-23 14:21:24
オリジナル
796 人が閲覧しました

この投稿は、rosecshly0928 によって 2013-09-09 12:44:58 に最終編集されました

predis 並べ替え

同僚が書いたコードはpredisを使用してクエリ条件とクエリ結果を保存していましたが、読み出された値が私が望んでいた順序ではなかったので、結果の順序を並べ替えました。ソート後の値は正しいですが、配列の末尾の値が正しくありません。何が問題なのか分かりません。

並べ替え前の結果が次の場合:
[471456_11_0_SGD_2013-11-26_2_2013-11-26] => Array ( [Error] => Unavailable [packagePr] => 0 [sequenceNo] => 11 [チェックイン] ] = > 2013-11-26 [チェックアウト] => 2013-11-26 [泊数] => 0 [ホテル名] => 独自の手配 )
[471444_12_2_SGD_2013-11-26_2_2013-11-28] ; 配列 ([シーケンス番号] => 12 [エラー] => 利用できません [パッケージPr] => 0 [チェックイン] => 2013-11-26 [チェックアウト] => 2013-11-28 [泊数] = > 2 [ホテル名] => 独自の配置 )
[エラー] => 利用不可 [パッケージPr] => 13 [チェックイン] => 2013-11-28 [チェックアウト] => 2013-11-28 [泊数] => 0 [ホテル名] => 独自の手配 )
[471442_14_1_SGD_2013-11-28_2013-11-29] =& gt ; Array ( [シーケンス番号] => 14 [エラー] => 利用できません [パッケージPr] => 0 [チェックイン] => 2013-11-28 [チェックアウト] => 2013-11-29 [泊数] = > 2 [ホテル名] => 独自の配置 )

並べ替え後の結果は次のようになります: [エラー] => 利用不可 [パッケージPr] => 0 [シーケンス番号] => 2013-11-26 [チェックアウト] => 0 [ホテル名] => [471444_12_2_SGD_2013-11 -26_2_2013-11-28] => Array ( [sequenceNo] => 12 [Error] => 利用できません [packagePr] => 0 [checkIn] => 2013-11-26 [checkOut] ] => 2013-11-28 [泊数] => 2 [ホテル名] => 独自の手配 )
[エラー] => 利用不可packagePr ] => 0 [シーケンス番号] = & GT; 2013-11-28 [チェックアウト] = & GT; & GT; 独自の配置)
[4714 42_14_1_sgd_2013 -11-28_2_2013-11-29] => 配列 ( [sequenceNo] => 14 [hotelName] => Flaminius [starRating] => 3 [hotelImage] => ; https://services.abc.com /images/hotels/d5da716c-b32c-4222-839d-3bb3a134007e.jpeg [ホテル ID] => 0 [場所 ID] => 471442 => 1 [チェックイン] => 2013-11-29 [通貨コード] => 0 [パッケージID] => 4653-aced-069c579493a3 [packagePr] => ; 100.09 [roomDetail] => Array ( [Room] => Array ( [AdultsCount] => 2 [Availability] => 利用可能 [Id] => omBasis] = > ベッド アンド ブレックファスト BB [ルームクラス] => ダブル ) ) [セッション ID] =>

配列をソートすることは不可能です値は変更されていますが、ソートコードを削除しただけで結果は正しいのですが、配列の値を追加すると間違っていました。

次の関数を使用してクエリ条件と結果を設定し、クエリ条件と結果を更新します:
public function setMkeyValue($args = array()){

if(!empty($args) && isset($args['setValue'])){

if(isset($args['keyprefix']) && $args['keyprefix'] != ''){
$this->setKeyPrefix($args['keyprefix']);
$this->newClientConnection() }

$this->CLIENT->mset($args['setValue']);
}
}

public function setKeyPrefix($key_prefix = ''){

if($key_prefix != ''){
$this->KEY_PREFIX = $key_prefix }

}


返信ディスカッション (解決策)

データは 2 次元配列です

どうやって並べ替えます


データは 2 次元配列です

どうやって並べ替えます

配列番号を読み取り、配列番号に従って配置します :
$owned_hotelSelection=Array();
for($i=1; $i<=count($hotelSelection); $i++){
foreach($hotelSelection as $key => $hotelInfo){
if(intval ( $hotelInfo['sequenceNo'])==$i){
$ordered_hotelSelection[$key]=$hotelSelection[$key]
}
}
}
$ordered_hotelSelection;

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート