將查詢出的數組存入redis php


我們從數據庫查詢出來的數據一般為數組的形式,而redis是不支持存入數組的。

通常我們首先想到的就是將數組轉化為json數據,再將json存入redis,之后取出時再將json轉化為php數組。

但將查出的數組數據是不能直接用json_encode()的,因為這樣會將一組正常的json最終再通過json_decode()轉化,會得到一個包含對象的數組,不是原本的數組,而這樣含有對象的數組是沒法直接被遍歷輸出的。

解決方法:給json_encode()、json_decode函數傳入第二個參數true,即:json_encode($json,true);json_decode($json,true);默認是false,即對象;true是數組。

這樣得到的就都是數組了。

數據結構:

要存入的數組:

E:\Project\lib\Models\Complaint.php:476:
array (size=69)
  'id' => int 103863
  'channel' => string 'ios:appstore' (length=12)
  'version_code' => string '30400' (length=5)
  'source_type' => string 'client' (length=6)
  'os' => string 'ios' (length=3)
  'app' => string 'sdsgzxz' (length=3)
  'inner_app' => string 'dsvvs' (length=3)
  'fund_source_name' => string '理財' (length=12)
  'fund_loan_order_info' => 
    array (size=1)
      0 => 
        array (size=12)
          'id' => int 262
          'order_number' => string '213' (length=23)
          'loan_apply_code' => string '1231' (length=19)
          'status_history' => string '0,5,6,7' (length=7)
          'status' => string '8' (length=1)
          'failed_reason' => null
          'funding_time' => null'fund_order_number' => string '12312' (length=23)
          'fund_order_status' => string '8' (length=1)

第二個參數默認為false的數據結構:

E:\Project\lib\Models\Complaint.php:476:
object(stdClass)[17]
  public 'id' => int 103863public 'os' => string 'ios' (length=3)
  public 'app' => string 'dasa' (length=3)
  public 'inner_app' => string 'asda' (length=3)
  public 'fund_source_name' => string '理財' (length=12)
  public 'fund_loan_order_info' => 
    array (size=1)
      0 => 
        object(stdClass)[18]
          public 'id' => int 262
          public 'order_number' => string '123' (length=23)
          public 'loan_apply_code' => string '3123' (length=19)
          public 'status_history' => string '0,5,6,7' (length=7)

當然這是一個栗子,所以數據是對不上的,目的是看看什么對象。

第二個參數是true的情況,返回的就是正常的數組了,就不貼上了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM