浏览代码

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 {
 class ZSetRange extends \Predis\InlineCommand {
     public function getCommandId() { return 'ZRANGE'; }
     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 {
 class ZSetReverseRange extends \Predis\InlineCommand {
     public function getCommandId() { return 'ZREVRANGE'; }
     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 {
 class ZSetRangeByScore extends \Predis\InlineCommand {