depthMerge($partial,$update); $state = $checksum->checkSum($partial); // java //$partial = '{"table":"futures/depth","action":"partial","data":[{"instrument_id":"BSV-USD-190816","asks":[["123.97","40","0"],["124.0","24","0"],["124.03","96","0"],["124.06","96","0"],["124.12","2","0"],["124.13","3","0"],["124.14","1645","0"],["124.19","250","0"],["124.21","10","0"],["124.22","10","0"],["124.23","240","0"],["124.25","10","0"],["124.31","66","0"],["124.4","233","0"],["124.45","360","0"],["124.5","757","0"],["124.59","865","0"],["124.75","960","0"],["124.8","2000","0"],["125.06","1522","0"],["125.09","1080","0"],["125.16","1230","0"],["125.3","121","0"],["125.33","30","0"],["125.44","144","0"],["125.7","5839","0"],["126.21","3528","0"],["127.15","2469","0"],["128.08","1189","0"],["131.0","515","0"],["138.3","64","0"],["138.31","128","0"],["138.33","128","0"],["141.37","128","0"],["142.37","64","0"],["142.9","64","0"],["144.43","106","0"],["144.46","20","0"],["144.86","185","0"],["145.29","187","0"],["145.72","239","0"],["146.15","101","0"],["146.58","228","0"],["147.01","299","0"],["147.45","297","0"],["147.89","283","0"],["148.33","223","0"],["148.77","278","0"],["149.21","129","0"],["149.65","269","0"],["150.09","128","0"],["150.16","20","0"],["150.54","124","0"],["150.99","134","0"],["151.44","213","0"],["151.89","195","0"],["152.34","116","0"],["152.79","224","0"],["153.24","290","0"],["153.69","202","0"],["154.15","243","0"],["154.61","286","0"],["155.07","126","0"],["155.53","185","0"],["155.99","167","0"],["156.45","204","0"],["156.46","64","0"],["156.91","191","0"],["157.38","244","0"],["157.85","249","0"],["158.32","234","0"],["158.79","236","0"],["159.26","163","0"],["159.73","273","0"],["160.0","1","0"],["160.2","106","0"],["160.21","264","0"],["160.69","187","0"],["161.17","125","0"],["161.66","253","0"],["165.0","1","0"],["169.0","1","0"]],"bids":[["123.66","44","0"],["123.62","6","0"],["123.53","364","0"],["123.49","2","0"],["123.44","24","0"],["123.43","120","0"],["123.42","24","0"],["123.39","231","0"],["123.37","96","0"],["123.35","96","0"],["123.23","16","0"],["123.21","240","0"],["123.19","2046","0"],["123.14","90","0"],["123.04","1230","0"],["122.97","360","0"],["122.96","196","0"],["122.9","360","0"],["122.89","2000","0"],["122.8","1385","0"],["122.6","480","0"],["122.59","480","0"],["122.58","5839","0"],["122.34","30","0"],["122.06","3529","0"],["121.76","2470","0"],["121.64","64","0"],["121.11","64","0"],["120.83","1190","0"],["120.55","159","0"],["118.36","142","0"],["114.0","10","0"],["104.76","202","0"],["104.45","213","0"],["104.14","160","0"],["103.82","138","0"],["103.5","282","0"],["103.18","159","0"],["102.87","106","0"],["102.56","189","0"],["102.25","161","0"],["101.94","197","0"],["101.63","117","0"],["101.32","145","0"],["101.01","288","0"],["100.7","149","0"],["100.39","193","0"],["100.08","271","0"],["99.77","273","0"],["99.47","233","0"],["99.17","147","0"],["98.87","122","0"],["98.57","149","0"],["98.27","205","0"],["97.97","102","0"],["97.67","269","0"],["97.37","237","0"],["97.07","235","0"],["96.77","194","0"],["96.47","265","0"],["96.18","102","0"],["95.89","105","0"],["95.6","166","0"],["95.31","195","0"],["95.02","295","0"],["94.73","135","0"],["94.44","291","0"],["94.15","276","0"],["93.86","237","0"],["93.57","104","0"],["93.28","258","0"],["93.0","235","0"]],"timestamp":"2019-08-15T06:45:25.258Z","checksum":174965541}]}'; // php //$partial = '{"table":"futures/depth","action":"partial","data":[{"instrument_id":"BCH-USD-191227","asks":[["297.79","180","0","2"],["297.83","100","0","1"],["297.84","1134","0","4"],["297.87","1","0","1"],["297.88","190","0","2"],["297.91","52","0","2"],["297.92","88","0","2"],["297.96","341","0","3"],["297.97","101","0","6"],["297.98","136","0","6"],["297.99","285","0","4"],["298.0","101","0","2"],["298.01","60","0","1"],["298.02","62","0","1"],["298.03","27","0","2"],["298.04","24","0","1"],["298.05","149","0","3"],["298.06","161","0","4"],["298.07","3","0","3"],["298.08","256","0","1"],["298.09","35","0","2"],["298.1","446","0","2"],["298.11","150","0","2"],["298.12","200","0","1"],["298.13","96","0","2"],["298.16","318","0","2"],["298.18","2","0","2"],["298.19","2025","0","3"],["298.2","118","0","2"],["298.21","150","0","1"],["298.23","160","0","1"],["298.25","100","0","1"],["298.26","218","0","2"],["298.28","440","0","1"],["298.32","13","0","1"],["298.33","14","0","2"],["298.34","14","0","2"],["298.35","160","0","1"],["298.36","824","0","4"],["298.37","166","0","2"],["298.38","100","0","1"],["298.4","600","0","1"],["298.42","280","0","1"],["298.44","550","0","3"],["298.45","713","0","4"],["298.46","170","0","1"],["298.47","505","0","2"],["298.48","643","0","2"],["298.49","640","0","1"],["298.5","26","0","2"],["298.51","220","0","1"],["298.52","6879","0","2"],["298.53","640","0","1"],["298.55","60","0","1"],["298.56","100","0","1"],["298.57","225","0","1"],["298.6","484","0","3"],["298.61","231","0","2"],["298.62","280","0","1"],["298.63","525","0","3"],["298.66","3030","0","1"],["298.68","26","0","2"],["298.7","87","0","1"],["298.71","634","0","2"],["298.72","664","0","4"],["298.74","225","0","1"],["298.76","872","0","4"],["298.77","352","0","1"],["298.78","225","0","1"],["298.79","102","0","1"],["298.83","1055","0","2"],["298.85","6","0","1"],["298.87","13","0","1"],["298.88","132","0","1"],["298.89","1025","0","5"],["298.9","127","0","1"],["298.93","3","0","1"],["298.96","127","0","1"],["299.0","10","0","1"],["299.02","960","0","1"],["299.06","960","0","1"],["299.08","300","0","2"],["299.1","960","0","1"],["299.15","3042","0","2"],["299.19","2999","0","1"],["299.2","3000","0","1"],["299.23","9038","0","3"],["299.27","2903","0","1"],["299.3","17","0","1"],["299.36","3694","0","1"],["299.38","3","0","1"],["299.42","88","0","1"],["299.53","300","0","2"],["299.55","547","0","1"],["299.6","29","0","1"],["299.67","1280","0","1"],["299.7","2480","0","2"],["299.82","3","0","1"],["299.85","1280","0","1"],["299.86","25","0","1"],["299.9","14","0","1"],["299.98","6355","0","2"],["300.0","3376","0","9"],["300.01","66","0","1"],["300.12","750","0","1"],["300.22","3639","0","1"],["300.26","35","0","1"],["300.27","3","0","1"],["300.47","6001","0","1"],["300.5","1616","0","1"],["300.71","78","0","1"],["300.72","3","0","1"],["300.96","2440","0","1"],["301.0","1344","0","3"],["301.16","3","0","1"],["301.37","2","0","1"],["301.51","120","0","1"],["301.53","603","0","1"],["301.54","20","0","1"],["301.57","1999","0","1"],["301.61","4","0","1"],["301.7","250","0","1"],["302.0","147","0","3"],["302.06","4","0","1"],["302.36","33","0","1"],["302.45","1190","0","1"],["302.51","4","0","1"],["302.52","30","0","1"],["302.65","4698","0","1"],["302.66","3631","0","1"],["302.72","3999","0","1"],["302.88","614","0","2"],["302.95","4","0","1"],["303.0","2010","0","2"],["303.26","20","0","1"],["303.33","30","0","2"],["303.36","10","0","1"],["303.4","4","0","1"],["303.5","6242","0","2"],["303.66","30","0","1"],["303.8","1494","0","1"],["303.85","4","0","1"],["304.0","3394","0","9"],["304.15","121","0","1"],["304.29","4","0","1"],["304.3","91","0","1"],["304.34","91","0","1"],["304.35","334","0","2"],["304.39","35","0","1"],["304.43","608","0","1"],["304.6","251","0","1"],["304.63","30","0","1"],["304.74","4","0","1"],["304.78","13","0","1"],["304.8","2072","0","2"],["304.92","30","0","1"],["305.0","1953","0","9"],["305.19","4","0","1"],["305.2","30","0","1"],["305.48","2160","0","2"],["305.5","2430","0","4"],["305.63","5","0","1"],["305.76","30","0","1"],["305.9","30","0","1"],["306.0","1625","0","5"],["306.04","30","0","1"],["306.08","5","0","1"],["306.13","30","0","1"],["306.16","73","0","1"],["306.18","30","0","1"],["306.32","30","0","1"],["306.47","30","0","1"],["306.51","7049","0","1"],["306.53","5","0","1"],["306.61","30","0","1"],["306.62","527","0","1"],["306.75","30","0","1"],["306.89","30","0","1"],["306.98","5","0","1"],["307.0","1101","0","7"],["307.03","30","0","1"],["307.17","30","0","1"],["307.31","30","0","1"],["307.42","5","0","1"],["307.45","830","0","2"],["307.59","4030","0","2"],["307.6","25","0","1"],["307.73","6029","0","2"],["307.76","8","0","1"],["307.87","135","0","3"],["308.0","1957","0","5"],["308.02","30","0","1"],["308.16","30","0","1"],["308.3","30","0","1"],["308.32","6","0","1"],["308.44","30","0","1"],["308.5","123","0","1"],["308.58","30","0","1"],["308.72","49","0","1"],["308.76","6","0","1"]],"bids":[["297.77","375","0","2"],["297.76","13","0","4"],["297.72","400","0","1"],["297.71","76","0","2"],["297.7","10","0","1"],["297.69","36","0","1"],["297.67","26","0","2"],["297.65","298","0","2"],["297.63","22","0","4"],["297.62","40","0","3"],["297.61","35","0","1"],["297.6","12","0","1"],["297.58","542","0","6"],["297.56","58","0","1"],["297.55","64","0","1"],["297.54","127","0","5"],["297.53","274","0","5"],["297.52","37","0","2"],["297.51","128","0","4"],["297.5","133","0","2"],["297.49","28","0","5"],["297.48","53","0","19"],["297.47","115","0","2"],["297.46","90","0","4"],["297.45","150","0","2"],["297.44","60","0","1"],["297.43","61","0","2"],["297.42","2","0","2"],["297.41","514","0","4"],["297.39","75","0","1"],["297.38","70","0","2"],["297.37","346","0","2"],["297.36","26","0","2"],["297.35","440","0","1"],["297.33","140","0","2"],["297.32","35","0","1"],["297.31","100","0","1"],["297.29","300","0","1"],["297.28","4","0","4"],["297.27","166","0","3"],["297.26","600","0","1"],["297.25","90","0","1"],["297.23","575","0","3"],["297.2","92","0","1"],["297.19","800","0","2"],["297.18","27","0","3"],["297.15","100","0","1"],["297.14","30","0","1"],["297.13","1","0","1"],["297.11","1999","0","1"],["297.07","2","0","2"],["297.06","1","0","1"],["297.03","1339","0","3"],["297.01","1","0","1"],["297.0","648","0","2"],["296.99","713","0","3"],["296.98","43","0","3"],["296.97","225","0","1"],["296.9","1196","0","4"],["296.89","520","0","3"],["296.88","1","0","1"],["296.85","170","0","1"],["296.84","205","0","1"],["296.82","102","0","1"],["296.77","13","0","1"],["296.76","6","0","1"],["296.75","280","0","1"],["296.73","232","0","3"],["296.71","898","0","3"],["296.69","8","0","3"],["296.66","10","0","1"],["296.65","102","0","1"],["296.63","225","0","1"],["296.59","1","0","1"],["296.57","1","0","1"],["296.53","963","0","2"],["296.52","960","0","1"],["296.45","6","0","1"],["296.44","1260","0","3"],["296.34","352","0","1"],["296.32","148","0","1"],["296.3","592","0","1"],["296.26","100","0","1"],["296.25","1","0","1"],["296.21","6","0","1"],["296.18","46","0","1"],["296.09","3","0","1"],["296.07","2076","0","1"],["296.05","3000","0","1"],["296.0","99","0","3"],["295.99","300","0","2"],["295.98","3000","0","1"],["295.97","1200","0","1"],["295.94","3000","0","1"],["295.9","2109","0","3"],["295.86","1280","0","1"],["295.82","1280","0","1"],["295.81","2999","0","1"],["295.78","1280","0","1"],["295.64","3","0","1"],["295.6","2000","0","1"],["295.5","6078","0","2"],["295.43","830","0","1"],["295.36","53","0","1"],["295.2","400","0","2"],["295.19","3","0","1"],["295.18","885","0","1"],["295.11","400","0","2"],["295.1","59","0","1"],["295.0","4634","0","19"],["294.99","6001","0","1"],["294.92","29","0","1"],["294.88","10","0","1"],["294.76","86","0","1"],["294.75","3","0","1"],["294.68","1200","0","1"],["294.63","29","0","1"],["294.62","8","0","1"],["294.45","4682","0","1"],["294.44","6043","0","2"],["294.35","294","0","2"],["294.3","61","0","2"],["294.27","300","0","1"],["294.21","735","0","1"],["294.18","147","0","1"],["294.07","29","0","1"],["294.01","1470","0","1"],["294.0","676","0","7"],["293.86","4","0","1"],["293.79","29","0","1"],["293.7","3640","0","1"],["293.66","1468","0","1"],["293.62","176","0","1"],["293.51","29","0","1"],["293.5","833","0","3"],["293.46","14","0","1"],["293.41","4","0","1"],["293.29","5","0","1"],["293.25","2441","0","1"],["293.2","8","0","1"],["293.11","25","0","1"],["293.1","1465","0","2"],["293.08","439","0","1"],["293.04","550","0","1"],["293.01","219","0","1"],["293.0","2164","0","11"],["292.96","6","0","2"],["292.89","20","0","1"],["292.88","2","0","1"],["292.8","268","0","1"],["292.74","1463","0","1"],["292.63","20","0","1"],["292.6","20","0","1"],["292.52","4","0","1"],["292.42","34","0","1"],["292.4","1462","0","1"],["292.27","200","0","1"],["292.07","4","0","1"],["292.01","3999","0","1"],["292.0","584","0","9"],["291.77","8","0","1"],["291.76","1191","0","1"],["291.67","145","0","1"],["291.63","54","0","2"],["291.19","1800","0","1"],["291.18","4","0","1"],["291.0","216","0","8"],["290.99","123","0","1"],["290.88","872","0","1"],["290.8","2","0","1"],["290.79","200","0","1"],["290.73","4","0","1"],["290.69","29","0","1"],["290.66","30","0","1"],["290.62","145","0","1"],["290.6","50","0","1"],["290.56","4","0","1"],["290.5","116","0","1"],["290.35","8","0","1"],["290.29","4","0","1"],["290.1","580","0","1"],["290.02","50","0","1"],["290.0","11908","0","29"],["289.95","2","0","1"],["289.84","5","0","1"],["289.81","434","0","1"],["289.7","1065","0","2"],["289.56","1163","0","2"],["289.4","14","0","1"],["289.39","5","0","1"],["289.2","1446","0","1"],["289.04","5","0","1"],["289.01","3000","0","1"],["289.0","8036","0","7"],["288.95","5","0","1"],["288.94","3000","0","1"],["288.93","14","0","1"],["288.9","3000","0","1"],["288.88","1888","0","3"],["288.86","10","0","1"]],"timestamp":"2019-09-24T10:54:00.856Z","checksum":297727568}]}'; //print_r($partial."\n"); $state = $checksum->checkSum($partial); //print_r($state); //$test = "119.95:9.2794:119.96:0.0023:119.94:12.0194:120.01:0.1667:119.92:7.5142:120.02:0.0146:119.91:0.9664:120.09:6.25:119.9:14:120.1:3:119.89:0.1666:120.11:6.4819:119.87:0.012:120.15:5.2697:119.86:6.252:120.16:13.4878:119.84:15.4802:120.19:8.2437:119.83:13.3988:120.21:58.3489:119.82:24.8308:120.22:8.3793:119.81:4.3429:120.23:13.0337:119.8:6.255:120.26:66.699:119.76:33.3316:120.28:13.84:119.75:13.5807:120.32:40:119.74:3:120.34:2.46:119.64:66.6753:120.35:5.055:119.61:34:120.36:4.36:119.59:4.39:120.37:12.9985:119.58:40:120.45:33.999:119.57:17.03:120.47:0.3331:119.54:8.6851:120.49:5.12:119.52:0.243:120.58:0.2:119.51:20:120.64:35.54:119.49:13.0277:120.77:19.534"; //$test = '10198:0.3734423:10198.1:12.21877497:10197.1:1.094:10198.2:0.019:10196.8:0.00196099:10198.5:0.029:10196.7:0.93:10198.6:0.017:10195.9:0.088:10198.9:0.2:10195.8:0.96217826:10199:2:10195.3:0.705:10199.1:0.017:10195.2:0.1:10199.4:0.0019611:10195.1:0.324:10199.5:0.063:10195:1:10199.6:0.4:10194.7:0.0094041:10199.7:0.001:10194.6:0.2:10199.8:1.682:10194.5:1.20161963:10200:0.5:10194:0.04:10200.1:0.50658763:10193.9:0.0019616:10200.3:3.99493844:10193.4:0.05134215:10200.6:0.017:10193.2:0.05:10200.8:1.31780321:10193:0.04904649:10200.9:0.197:10192.9:0.2:10201:0.2:10192.8:0.26903274:10201.3:0.05:10192.5:0.2601525:10201.6:0.45637232:10192.2:1.27452464:10201.7:0.15240005:10192:0.04:10201.8:0.606:10191.6:0.05:10201.9:0.31157305:10191.4:0.04:10202:0.001'; //$test = '10198:0.3734423:10198.1:12.21877497:10197.1:1.094:10198.2:0.019:10196.8:0.00196099:10198.5:0.029:10196.7:0.93:10198.6:0.017:10195.9:0.088:10198.9:0.2:10195.8:0.96217826:10199:2:10195.3:0.705:10199.1:0.017:10195.2:0.1:10199.4:0.0019611:10195.1:0.324:10199.6:0.4:10195:1:10199.7:0.001:10194.7:0.0094041:10199.8:1.682:10194.6:0.2:10199.9:0.003637:10194.5:1.20161963:10200:0.5:10194:0.04:10200.1:0.00658763:10193.9:0.0019616:10200.3:3.99493844:10193.2:0.05:10200.6:0.017:10193:0.04904649:10200.8:1.31780321:10192.9:0.2:10200.9:0.197:10192.8:0.32037489:10201:0.2:10192.5:0.2601525:10201.3:0.05:10192.2:1.27452464:10201.4:0.37833406:10192:0.04:10201.6:0.45637232:10191.6:0.05:10201.7:0.15240005:10191.4:0.04:10201.8:0.606:10191.3:0.34806016:10201.9:0.31157305'; //$test = '10198:0.3734423:10198.1:12.21877497:10197.1:1.094:10198.2:0.019:10196.8:0.00196099:10198.5:0.029:10196.7:0.93:10198.6:0.017:10195.9:0.088:10198.9:0.2:10195.8:0.96217826:10199:2:10195.3:0.705:10199.1:0.017:10195.2:0.1:10199.4:0.0019611:10195.1:0.324:10199.5:0.063:10195:1:10199.6:0.4:10194.7:0.0094041:10199.7:0.001:10194.6:0.2:10199.8:1.682:10194.5:1.20161963:10200:0.5:10194:0.04:10200.1:0.50658763:10193.9:0.0019616:10200.3:3.99493844:10193.4:0.05134215:10200.6:0.017:10193.2:0.05:10200.8:1.31780321:10193:0.04904649:10200.9:0.197:10192.9:0.2:10201:0.2:10192.8:0.26903274:10201.3:0.05:10192.5:0.2601525:10201.6:0.45637232:10192.2:1.27452464:10201.7:0.15240005:10192:0.04:10201.8:0.606:10191.6:0.05:10201.9:0.31157305:10191.4:0.04:10202:0.001'; //$$partial = '{"arg":{"channel":"books","instId":"BTC-USDT"},"action":"snapshot","data":[{"asks":[["22853.8","47.88488362","0","1"],["22855.2","49.36843076","0","1"],["22857.3","46.76408824","0","1"],["22858.2","24.59860109","0","1"],["22858.4","27.17804417","0","1"],["22858.9","15.45661661","0","1"],["22859.7","15.41592125","0","1"],["22860.1","40.19496344","0","1"],["22860.4","13.58851541","0","1"],["22860.8","37.02210684","0","1"],["22861.3","13.33690117","0","1"],["22862.1","39.15634998","0","1"],["22862.8","30.23105688","0","1"],["22864.4","12.38612806","0","1"],["22865.6","31.5627738","0","1"],["22866.1","12.16212085","0","1"],["22866.9","30.18362199","0","1"],["22867.7","14.51356518","0","1"],["22868.7","33.58918709","0","1"],["22869.8","42.01856138","0","1"],["23099","0.001","0","1"],["23270","0.1","0","1"],["24000","1","0","1"],["25001","3.998","0","1"],["226000.5","1.88737145","0","1"],["99999999","2.02512819","0","1"],["100000000","9.89973729","0","1"]],"bids":[["22848.1","33.39327218","0","1"],["22845.4","30.39854874","0","1"],["22844.3","26.08871551","0","1"],["22844.1","12.68699213","0","1"],["22843.9","33.23817166","0","1"],["22843","41.68000598","0","1"],["22842.3","42.26402517","0","1"],["22842","23.3962294","0","1"],["22841.1","29.72499726","0","1"],["22839.3","27.16776266","0","1"],["22837.6","12.49045438","0","1"],["22836.4","31.03300898","0","1"],["22835.1","14.89641821","0","1"],["22833.9","32.10636775","0","1"],["22833","47.1793827","0","1"],["19058.6","0.11","0","1"],["15000","1","0","1"],["10000","1","0","1"],["2324","1","0","1"],["2311","8.62816961","0","5"],["1000","0.1","0","1"],["200","1","0","1"],["100","1","0","1"],["29","99","0","1"],["26","9","0","1"],["12","1","0","1"],["11.3","1269.91150442","0","1"],["8","625","0","1"],["3","5","0","1"],["2.1","2","0","1"],["1","28006.1","0","8"]],"ts":"1608289311419","checksum":-9149361}]}'; ////$state = $checksum->getCrc32($partial); // if ($state){ echo "校验成功\n"; // print_r($partial); }else{ echo "校验失败\n"; } class ChecksumTest{ /** * 校验和 * @param $partial * @return bool */ function checksum($partial){ $partial = json_decode($partial, true); $asks = array_values($partial["data"][0]["asks"]); $bids = array_values($partial["data"][0]["bids"]); $strs=""; for ($i=0; $i<25; $i++){ if (@$bids[$i]){ $strs.=$bids[$i][0]; $strs.=":"; $strs.=$bids[$i][1]; $strs.=":"; } if (@$asks[$i]){ $strs.=$asks[$i][0]; $strs.=":"; $strs.=$asks[$i][1]; $strs.=":"; } } $strs = substr($strs,0,strlen($strs)-1); print_r($strs . "\n"); $strs = crc32($strs); // 计算前25档的checksum $strs = $this->get_signed_int($strs); switch (true) { case ($partial["data"][0]["checksum"]==$strs); return true; break; default: return false; break; } // print_r("\nchecksum:".$strs); } /** * 深度合并 * @param $partial * @param $update * @return false|string */ function depthMerge($partial, $update){ $partial = json_decode($partial,true); $update = json_decode($update,true); $ndata = $partial; $partialAsks = $partial["data"][0]["asks"]; $partialBids = $partial["data"][0]["bids"]; $updateAsks = $update["data"][0]["asks"]; $updateBids = $update["data"][0]["bids"]; if (!empty($updateAsks)){ for ($i=0; $ideep_in_array($updateAsks[$j][0],$ndata["data"][0]["asks"]) and $updateAsks[$j][1] != 0); array_push($ndata["data"][0]["asks"], $updateAsks[$j]); break; } } } } if (!empty($updateBids)){ for ($i=0; $ideep_in_array($updateBids[$j][0], $ndata["data"][0]["bids"]) and $updateBids[$j][1] != 0); array_push($ndata["data"][0]["bids"], $updateBids[$j]); break; } } } } // asks 从小到大排序 $askPrices = array_column($ndata["data"][0]["asks"],0); array_multisort($askPrices,SORT_ASC,$ndata["data"][0]["asks"]); // bids 从大到小排序 $bidPrices = array_column($ndata["data"][0]["bids"],0); array_multisort($bidPrices,SORT_DESC,$ndata["data"][0]["bids"]); // 换 checksum $ndata["data"][0]["checksum"] = $update["data"][0]["checksum"]; // print_r(json_encode($ndata)); return json_encode($ndata); } /** * 获取32位校验码 * @param $in * @return float|int */ protected function get_signed_int($in) { $int_max = pow(2, 31)-1; if ($in > $int_max){ $out = $in - $int_max * 2 - 2; } else { $out = $in; } return $out; } /** * // 数组的深度搜索 * @param $value * @param $array * @return bool */ protected function deep_in_array($value, $array) { foreach($array as $item) { if (!is_array($item)) { if ($item == $value) { return true; } else { continue; } } if (in_array($value, $item)) { return true; } else if ($this->deep_in_array($value, $item)) { return true; } } return false; } public function getCrc32($strs){ $strs = crc32($strs); // 计算前25档的checksum $strs = $this->get_signed_int($strs); print_r($strs); print_r("\n"); } }