У меня есть объект JSON с данными (дата, км и длительность), которые я использовал для создания таблицы HTML. Данные хранятся в порядке по дате, поэтому они отображаются так, как я хочу. См. Ниже.
Date Km's Duration Part/Service
15/10/19 16.05 01:30:09
14/10/19 16.8 01:30:42
03/10/19 13.47 02:30:36
02/10/19 15.79 01:18:54
30/09/19 17.5 01:26:56
29/09/19 13.15 01:49:38
26/09/19 12.1 01:36:37
У меня есть еще один объект JSON с массивом частей (4-й столбец) и датой. Я не могу понять, как циклически перемещаться между обоими, чтобы добавить строку детали в таблицу в правильную строку (до даты первой таблицы).
Я попытался запустить еще один для каждого цикла в первой таблице для каждого цикла, чтобы проверить, существует ли дата до даты первой таблицы, и, если это так, вставьте строку и удалите элемент из массива, чтобы онне может дублироватьМне также пришлось изменить обе даты на strtotime ();в противном случае сравнение дат будет проверять только первое число (дней)
foreach($jsonData1 as $elementKey => $element) {
$durMinutes = gmdate("H:i:s", $element->elapsed_time);
$new_date_format = date('d/m/y', strtotime($element->start_date_local));
$kms = round($element->distance / 1000, 2);
foreach($jsonData2 as $eKey => $e) {
$date_ = $e->date_;
$date2_ = strtotime($date_) ;
$date2 = str_replace('20', '', $date2);
if($date2_ < $dateToCompare){
echo "<tr id='".$rowId."'>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td>".$date2_."</td>";
echo "</tr>";
/
unset($jsonData2[$eKey]);
}
}
echo "<tr id='".$rowId."'>";
echo "<td>".$new_date_format."</td>";
echo "<td>".$kms."</td>";
echo "<td>".$durMinutes."</td>";
echo "<td></td>";
echo "</tr>";
$rowId++;
}
Добавлен Json objest, данных было много, поэтому я сократил их. также некоторые входы рангона, которые я поместил во время тестирования
jsonData1
{"0":{"resource_state":2,"athlete":{"id":17300746,"resource_state":1},"name":"Morning Ride","distance":16046.3,"moving_time":4898,"elapsed_time":5409,"total_elevation_gain":0,"type":"Ride","workout_type":null,"id":2789696693,"external_id":"5017296437_1571097318.gpx","upload_id":2956200741,"start_date":"2019-10-14T23:58:35Z","start_date_local":"2019-10-15T09:58:35Z","timezone":"(GMT+10:00) Australia\/Brisbane","utc_offset":36000,"start_latlng":[-27.39,152.94],"end_latlng":[-27.39,152.94],"location_city":null,"location_state":null,"location_country":"Australia","start_latitude":-27.39,"start_longitude":152.94,"achievement_count":12,"kudos_count":1,"comment_count":0,"athlete_count":1,"photo_count":0,"map":{"id":"a2789696693","summary_polyline":"dddfDqgnd\\qBb@GTI|Dd@p@`@|APfAF`B[r@Ab@O^kAxBa@b@E\\H`BPx@z@rArBfCdAv@j@lA~@bDZVdAlB`A\\VTBXKt@K|Ho@lBaDvBsCnCeEnHE^Yb@qB~AaC|@wA`AMnAeBxCGt@\\lAdBvClBfB~BrAQF?zBFpES`@sB`Aq@~BCjCIV[b@}AfAcATyAx@oAxAwFq@eAfAK~Ha@vCGrAIdDJnBCpBq@`EG|ALXANo@fBO~@ExB|@rAt@h@t@VzADl@p@gBdBgAd@sBe@mBZCtBN\\r@d@xBdC|CbCnANvAFbE_@c@UqBQp@StF]vA_AdAEb@qAv@}@v@]BFa@l@Eb@_@p@HCzBiBPcADeBHWTGx@\\l@z@@Jm@QWVh@\\v@rAdAh@d@E`AYZDS\\@XfAp@rAnC\\@d@oDpAw@x@}@XmD`Aq@|CQt@c@fCw@jBNrAgCW}BYg@f@KGKLMQK@MdAGB_@a@Ut@y@p@mAN@V^KbABj@Mx@s@v@_@~@XjA?ZMl@mA~Ba@VgAJmAOiBn@cAx@m@HmAQo@XG`@BvBaB`BgAt@AtDS|@UHqBiAq@uAeAg@mCBqEq@aAEgCvAgDr@uFPMMoCPm@Cw@Y]FyC_CwB}Bu@_@Yo@?eBFGpBUzAf@lAa@nBqA?_@M]]Qw@@iAYq@i@w@}AO{ABoAD[|@cBO_@RB\\OxBsBP]t@_@Va@xBg@\\BLc@jB?rAa@Xf@[`@`@LDTTC@mDcAUbBa@Ze@`@wAnAa@VBXXLEEe@W[TKz@`AJXITDL\\S@_A}AeBSKOFP_@xAl@hBf@VNNZH?@Yq@sAJApBnADIK[cAcAuAg@WiAUYNQj@`Aj@QTD`@f@|Aj@RX`AZX`@|@aAx@l@NAr@mApBkAv@_AvAa@nCo@RD\\M`@s@@[d@Mp@g@La@f@o@BIU?cAVr@{AlBc@f@m@Ru@]kDImC~@wOe@][q@k@uGk@eDs@PII?m@Qc@oA_AuDaEmAyDUuA@i@H]|@w@B{@mAyBgAu@ZqAFiABmCEyBIMXy@Ck@We@sAa@uAeC_@aAg@My@sBm@c@mBsB{@qAaA{BSsBzBsD@i@\\gAIiCk@oBq@cAPwDPYvBe@","resource_state":2},"trainer":false,"commute":false,"manual":false,"private":false,"visibility":"everyone","flagged":false,"gear_id":"b6289997","from_accepted_tag":false,"upload_id_str":"2956200741","average_speed":3.276,"max_speed":13.6,"device_watts":false,"has_heartrate":true,"average_heartrate":138.7,"max_heartrate":171,"heartrate_opt_out":false,"display_hide_heartrate_option":true,"elev_high":86,"elev_low":86,"pr_count":1,"total_photo_count":0,"has_kudoed":false},"1":{"resource_state":2,"athlete":{"id":17300746,"resource_state":1},"name":"Morning Ride","distance":16804.8,"moving_time":5069,"elapsed_time":5442,"total_elevation_gain":0,"type":"Ride","workout_type":null,"id":2787313119,"external_id":"5017296437_1571012018.gpx","upload_id":2953665443,"start_date":"2019-10-14T00:17:15Z","start_date_local":"2019-10-14T10:17:15Z","timezone":"(GMT+10:00) Australia\/Brisbane","utc_offset":36000,"start_latlng":[-27.39,152.95],"end_latlng":[-27.39,152.94],"location_city":null,"location_state":null,"location_country":"Australia","start_latitude":-27.39,"start_longitude":152.95,"achievement_count":7,"kudos_count":1,"comment_count":0,"athlete_count":1,"photo_count":0,"map":{"id":"a2787313119","summary_polyline":"nncfDymod\\{@KwBkBoAe@aGMmAiAsB`@{A?e@sA{A{AsGoDwA[MTKE_BqBmF{DoAqBy@[]w@My@mAcBRyL_@cDmAmEa@y@m@UKs@QsOKOEJAj@YYFcAIqBFc@c@Xa@`ANz@Ov@[j@JpA_ASYaAW@Bx@WBu@qAq@Ec@{B}@qBOm@sAOWwAa@c@_Bg@}@w@oAwBk@e@Qu@cAeAi@\\e@r@Q`Ac@MJzBZTAJg@CZn@Qp@jApCtHhDhAjDvBlErAnAXj@tB`A|@nA`Al@bFZxBtEv@nGAtBQPG`DoANSTKh@i@j@qA`@K?^WIIqBWqARkFsB`@Co@m@NAG_@o@_@Yc@wAa@eA}AQeB\\eCSGo@uAO`Au@tAP^LpAxAzDb@\\b@fAd@A^vAz@RgAXDHd@HH\\`El@hDEzDVT?d@a@zB_A~@fAl@tA|@v@lBjC@|AgAvDUtB_@JcA]SF~AdBHlAo@\\Su@w@`B@n@]CM{@i@x@q@VcALyBr@FbCg@aAw@a@uAf@g@z@hACXP@b@c@C?`@_@`@C^}A~@cA~AVlAZx@hAdBpCxFz@nApAt@Ax@aDnBYbA^?p@s@n@A|@q@`Du@lA`@dA]vANfAS|@`@IvAfARh@f@Ol@wA|A@\\LQh@VFIW_@JAh@XRG?S]SD]XTn@Fd@f@Al@dAt@l@|B_@v@i@RsGj@GVFj@Xc@b@v@xALTUzB_@l@m@R}@RMz@BM{@sAmBsGaM[U}@UgLn@oDp@_@NO\\Kc@^kBEy@gAuBi@g@cAgC{@wAkAC?NEJkAh@SGYb@Uc@uBeAoBKN\\a@P{@e@]cAHQRVVBC_@wD{B{@@[qAqBcBH]EmA\\qAG]w@u@HEdA\\h@p@NSKc@HGf@f@NQQq@i@_@FMt@Ep@f@|BgC|@L`@ZbAfB|AzEfAn@z@RlClERCdAaBdAi@f@aAFe@d@GC_@[OiAFj@iAj@]f@Fz@r@Pt@Jy@Mq@JWfBu@lAO^]NDl@aAFj@j@NEk@|@iBX~@`AUAc@f@eAn@_I~@c@xAj@n@G~AfBxBZxBz@vDfCnAxBXTpDm@ZVRf@f@LbHX~B~Ah@t@h@A","resource_state":2},"trainer":false,"commute":false,"manual":false,"private":false,"visibility":"everyone","flagged":false,"gear_id":"b6289997","from_accepted_tag":false,"upload_id_str":"2953665443","average_speed":3.315,"max_speed":11.8,"device_watts":false,"has_heartrate":true,"average_heartrate":140.5,"max_heartrate":167,"heartrate_opt_out":false,"display_hide_heartrate_option":true,"elev_high":79,"elev_low":79,"pr_count":3,"total_photo_count":0,"has_kudoed":false},"2":{"resource_state":2,"athlete":{"id":17300746,"resource_state":1},"name":"Evening Ride","distance":13474.6,"moving_time":4104,"elapsed_time":9036,"total_elevation_gain":0,"type":"Ride","workout_type":null,"id":2761382734,"external_id":"5017296437_1570090432.gpx","upload_id":2926459145,"start_date":"2019-10-03T08:16:33Z","start_date_local":"2019-10-03T18:16:33Z","timezone":"(GMT+10:00) Australia\/Brisbane","utc_offset":36000,"start_latlng":[-27.34,152.98],"end_latlng":[-27.36,152.97],"location_city":null,"location_state":null,"location_country":"Australia","start_latitude":-27.34,"start_longitude":152.98,"achievement_count":5,"kudos_count":4,"comment_count":0,"athlete_count":3,"photo_count":0,"map":{"id":"a2761382734","summary_polyline":"zkzeD{xud\\Kb@GHOFoD\\aANk@GQII?c@cAGKOEYBe@PsCf@y@OKBKFIJCLCp@SdAA`@EHK@cF_@oRmBoPyAs@Bu@M_VcCwJw@ILIn@M|B]zD]zFW`Dc@Le@?gRiBSQEK?MJc@GGIARIDICINHKEIDBFI@GHDKCGHCKCGBHGFPGF@JGHHE?]BIH?@JGBFCK@?JP@GCEI@MGDEKAHINFGGEDGE[PDCH@HFIL@BHEFQBWCk@L^HPI\\AG@DDG?QFBIMAHBNOGDBJRNSKDUAKAJGECHPNH?DJt@d@VOQMq@MEMIEQ?EFFEBHIACIIEO@DFH@FI@JDGF?AMDGI?LXYWMFPCJ@DFm@MEJR@PJGBJOBFAJl@DOIISGAFGCKN{@j@sIt@BxFp@tJ|@RSFOFc@H{Ad@c@DU?K?JM\\Cn@ETBK?K@JEHCI@KDG?JDGCHFIGF@HJKPFI?CIIBIPBHHGBGAMGHGTBHAM?YEn@EDHUDe@?HGTFMBUGFALDKEHBH@IFGOR@s@HUNcAVMV@jCXDDAL]GNL?NMlBAFQGCIFa@FiAK?GJKbBJjALFPSLuBKo@@NAP]fCNNJU@g@I?GHGZBLFDHIDa@CMI?EHCXHLHOFaAYTBZAXBHLED[BqA?II?EH@LCXCRIVFPJ?FO?[@WYNCLCVFLHDFCDSGQD]AQGEKf@FKFe@AMG@EHI|@JEBKH_AG[MYHLLBAKFEBNEb@KZERA^GNKE@i@Ho@A[ICAJGz@@f@FV?LBNJHPSDQNiC?KESFHGn@GEAIBJGRQzAEILEBq@Da@NYBQBHCm@DIvARhADzCTlFn@dIv@PBFLF@JCrB?jFl@pKbA~NfApFh@DIDe@Jm@B_@?YBQVWPAt@H^ClBa@~@UL?JFZt@LNRJ`@?h@GtA_@jIeBbA`@zCbBLHN`@E`@Ur@S^iAfBoB|E~@fAj@dBj@pA\\Nn@Mb@?RHRRFRHv@XlAFv@JDf@IZO`@[bBMVRTd@D^DjADXTPpAb@nAh@HJHL?PyAtCOZ@r@L|@DJ\\Ph@J|@@hAMf@OL[JMd@}@hByAZG\\[JEjA?HEDMBc@BGJGV_@HCn@o@TC~@DtAZPNr@Rr@G`AYrAGfA?X?fAv@RAFGLo@JuAF_BD]GAZcCXoFs@A_BOgC[CSHi@F_AJk@JA\\Bn@RvX~BlHt@rAHPBxA\\hHv@nDh@Z\\nAdAxDrEjIjJXb@QKCK","resource_state":2},"trainer":false,"commute":false,"manual":false,"private":false,"visibility":"everyone","flagged":false,"gear_id":"b6289997","from_accepted_tag":false,"upload_id_str":"2926459145","average_speed":3.283,"max_speed":22.9,"device_watts":false,"has_heartrate":true,"average_heartrate":112.7,"max_heartrate":159,"heartrate_opt_out":false,"display_hide_heartrate_option":true,"elev_high":97,"elev_low":97,"pr_count":3,"total_photo_count":0,"has_kudoed":false},"3":{"resource_state":2,"athlete":{"id":17300746,"resource_state":1},"name":"Morning Ride","distance":15789.8,"moving_time":4281,"elapsed_time":4734,"total_elevation_gain":0,"type":"Ride","workout_type":null,"id":2756177555,"external_id":"5017296437_1569974724.gpx","upload_id":2921078316,"start_date":"2019-10-02T00:06:32Z","start_date_local":"2019-10-02T10:06:32Z","timezone":"(GMT+10:00) Australia\/Brisbane","utc_offset":36000,"start_latlng":[-27.39,152.94],"end_latlng":[-27.39,152.94],"location_city":null,"location_state":null,"location_country":"Australia","start_latitude":-27.39,"start_longitude":152.94,"achievement_count":14,"kudos_count":3,"comment_count":0,"athlete_count":1,"photo_count":0,"map":{"id":"a2756177555","summary_polyline":"~qcfDorod\\SLMr@c@v@c@ZmAUmBoB]M_AQiBBiCOE]H_FGUC_B\\iB?q@GvAa@jBOvCgAlAIZa@R}@DiAa@_BmBs@oAcDkBNQL?f@Xx@RfDrDvA~@RGD_Ah@Wl@IBKm@WeBOy@iAO{@_@Hg@Qe@]QW_@uAyA}@cAyAeByAuAY{@]o@cAa@CWMk@yA[Yw@uASkCLy@GoAF]j@mA@u@Vu@PUPHx@Sh@CXUdAa@tCxA|@|@l@Tj@_@NUXQR]ZQpADlA]NJDqAJOBl@FA?c@HFFVJHDEHs@?{@ZgAKOuAGqAn@_Ft@yDgBEIBYKQ{@PQw@aAaC][i@wA@SJMb@ITTHI?OSQs@MQiAWq@yBsCc@KOJWjAA\\GDc@{@Cs@Dk@lAeCLk@OY}@CQg@IaAoAeAM[Ky@EgBRwBZMnDkC`@{AZeEbAq@f@Jr@h@hAhB~@LfBUfANrA\\HL`F~BZj@LbA\\Rf@DbBjBzBzCAh@Gh@u@nCL`GIpAGb@IL_AB}@i@y@w@kBUYa@Iu@S@i@_@u@MQ@a@PM_@qAg@g@mAsAa@eA{@{A{@qACGg@Yo@m@UKS@Ul@GOSy@I[RWh@MAI[JaAV[VGUG[N_@`@K@MkDNSdBCcC@_BjASp@QdB?xAJ|AEt@Sh@c@VaAAq@JeAi@Si@Kh@N|AIrAiAnCLp@ARc@~@CNBp@JXUC]UO_@E[KESNHb@CVMAu@mAQM_@@OG{@aDIo@]_@Mi@mAQKKI{@_@g@}Ag@sAiA_AiBi@c@Y_Aa@W]k@]V_@l@S^C^WDQMDr@AbA`@Z?Ha@GGDZr@Ur@pArCtHjD`AtCzB`FnAbAd@v@vB~@r@jARRt@`@ZDxDLtBzD`AtEL`AWRSbH]Vk@AKFKLKp@g@l@_B`@EIZKuBc@yANiFwBRD?K]_@REBKIW]Qm@s@sA_@iAwASiB\\_CYO[mAGGKBQdAk@dATh@JjAV\\Pt@v@jB^Xf@bAb@CJLFRC`@LXx@L?JQHu@Nn@NL^rDd@`ADzAIrEXhAQnAg@Hi@BIJ?v@z@XdA`@r@x@f@jAhB|@z@tDdC\\l@lAdAdBRxA\\zDzB`At@Jl@^x@RR`BGvAc@f@x@d@RxBBfDT`C|Al@x@l@D","resource_state":2},"trainer":false,"commute":false,"manual":false,"private":false,"visibility":"everyone","flagged":false,"gear_id":"b6289997","from_accepted_tag":false,"upload_id_str":"2921078316","average_speed":3.688,"max_speed":11.3,"device_watts":false,"has_heartrate":true,"average_heartrate":135.4,"max_heartrate":170,"heartrate_opt_out":false,"display_hide_heartrate_option":true,"elev_high":103,"elev_low":103,"pr_count":4,"total_photo_count":0,"has_kudoed":false}}
jsonData2 (rows to add to the original table during construction)
[
{
"component":"fork",
"date_":"21\/10\/2019",
"servicetype":"gfhfh",
"notes":"fhgfghfgh"
},
{
"component":"fork",
"date_":"02\/10\/2019",
"servicetype":"gfhfh",
"notes":"fhgfghfgh"
},
{
"component":"fork",
"date_":"03\/06\/2019",
"servicetype":"gfhfh",
"notes":"fhgfghfgh"
},
{
"component":"fork",
"date_":"18\/02\/2019",
"servicetype":"gfhfh",
"notes":"fhgfghfgh"
},
{
"component":"fork",
"brand":"ppiopoip",
"date_":"16\/10\/2019"
},
{
"component":"fork",
"brand":"ppiopoip",
"date_":"16\/10\/2019"
}
]
Я надеюсь, что это проще сделать, так как я думаю, что моя попытка далека от реальности?
**Я обнаружил ошибку и обновил код, чтобы отразить, второй и первый форматы даты были неправильными. Я изменил $ date2 на правильный формат, заменив 20 с 2019 на 19.
Он работает лучше, но сравнивает только первые числа "dd" и не учитывает месяц и год.