소스 검색

Implemented the "WITHSCORES" option for ZRANGE and ZREVRANGE.

Daniele Alessandri 15 년 전
부모
커밋
822a3e56e2
1개의 변경된 파일26개의 추가작업 그리고 0개의 파일을 삭제
  1. 26 0
      lib/Predis.php

+ 26 - 0
lib/Predis.php

@@ -1152,10 +1152,36 @@ class ZSetRemove extends \Predis\BulkCommand {
 
 class ZSetRange extends \Predis\InlineCommand {
     public function getCommandId() { return 'ZRANGE'; }
+    public function parseResponse($data) {
+        $arguments = $this->getArguments();
+        if (count($arguments) === 4) {
+            if (strtolower($arguments[3]) === 'withscores') {
+                $result = array();
+                for ($i = 0; $i < count($data); $i++) {
+                    $result[] = array($data[$i], $data[++$i]);
+                }
+                return $result;
+            }
+        }
+        return $data;
+    }
 }
 
 class ZSetReverseRange extends \Predis\InlineCommand {
     public function getCommandId() { return 'ZREVRANGE'; }
+    public function parseResponse($data) {
+        $arguments = $this->getArguments();
+        if (count($arguments) === 4) {
+            if (strtolower($arguments[3]) === 'withscores') {
+                $result = array();
+                for ($i = 0; $i < count($data); $i++) {
+                    $result[] = array($data[$i], $data[++$i]);
+                }
+                return $result;
+            }
+        }
+        return $data;
+    }
 }
 
 class ZSetRangeByScore extends \Predis\InlineCommand {