php 合併 2次從資料庫查詢出來的 陣列

2021-08-29 18:25:41 字數 2027 閱讀 8389

sessionid, uuid 2個字段上都有索引,但是查詢條件  (sessionid='***' or uuid='yyy') 不能使用索引

=> 拆成2個sql  sessionid='***', uuid='yyy' 將查詢出來的結果合併

/**

* @param array $a

* @param array $b

* @param callable|null $compare

* @return array

*/private function mergesortedrowsbycolumn(array $a, array $b, callable $compare = null) ;

}for ($i = 0, $ia = 0, $ib = 0; $ia < $na && $ib < $nb; $i++) else

}while ($ia < $na)

while ($ib < $nb)

return $ret;

}

test:

public function test() );

// var_dump($a);

// var_dump($b);

var_dump($c);

}

// 如果按inserttime逆序    

$c = $this->mergesortedrowsbycolumn($a, $b, function($a, $b) );

返回的結果還需要去除重複:

sample data:

[","source":1},","source":3},","source":3},","source":3},","source":1},","source":1},","source":1},","source":1},","source":1},","source":1},","source":1},","source":1}]
js實現php addslashes

function addslashes(s)
通過json_decode轉換為php的陣列

把這個已經排好序的陣列去重:

public static function distinctsortedrows(array &$a, callable $cmp) 

}self::arrayshrink($a, $i, $j);}}

public static function arrayshrink(array& $arr, $start, $end)

if ($end <= $start || $end > $n)

$delta = $end - $start - 1;

$last = $n - $delta;

for ($i = $start; $i < $last; $i++)

for ($i = $last; $i < $n; $i++)

}

distinctsortedrows

usage:

$goods = self::mergesortedrowsbycolumn($goodsuuid, $goodssid, function($a, $b) );

self::distinctsortedrows($goods, function($a, $b) );

相關model**:

<?php

use illuminate\database\eloquent\model;

use illuminate\support\facades\db;

class shoppingcart extends model

public function selectbysessionid($sid)

}

related blog:

array_merge

關於Mysql資料庫時間和查詢出來的時間不一致問題

資料庫記錄的時間 mybatis查詢出來的時間 createtime 2019 06 02 17 39 02.0,lastupdatedtime 2019 06 02 18 49 05.0差了8小時。url用的是servertimezone gmtspring.datasource.url jdbc...

將資料庫查詢出來的資料轉化成樹形結構

從資料庫查詢的每一條資料都包含id和fid欄位,將獲得的資料轉換成樹形結構 假設從資料庫查詢出來的資料對應的實體類 public class department public department int id,int fid,string name,listlist 將獲得資料轉化成屬性結構 p...

通過查詢出來的值修改原來的資料庫表字段

size large size large size x small 在運算元據庫的時候,我們經常需要通過在原表中查詢出來的資料去更新原來資料庫中的某個欄位的值,在這種情況下,經常感覺很棘手,下面是我其中的乙個解決方法!我的需求是這樣的,先給出表結構,很簡單。size size table 表名為 ...