30. september 2005 - 11:11
Der er
19 kommentarer og 1 løsning
Array udfordring
Har et multiarray taget fra en tabel: array[dato][kundenr]=[antal] der skal jeg så have summen af antal pr dato. Kan sagtens få summen af alt, men det skal være pr dato. i et andet array har jeg så kundenr=>antal og der skal jeg have summen af antal, grupperet via de kundenr der er i det første array??? array1=array(dato=>array(kundenr=>antal kundenr=>antal)dato=>array(kundenr=>antal kundenr=>antal) osv. array2=array(kundenr=>antal) sum array1=>dato1 = 10 sum array2=>de_kundenr_der_er_i_dato1=6 sum array1=>dato2 = 9 sum array2=>de_kundenr_der_er_i_dato2=7 osv Håber i forstår.
Annonceindlæg fra QNAP
30. september 2005 - 12:59
#1
Tror du ikke det måske er muligt at lave en SQL som giver dig det ønskede resultat?
30. september 2005 - 13:01
#2
Hvis det ikke er fra en database, kunne det måske parses anderledes, så det var lettere at arbejde med.
30. september 2005 - 13:09
#3
Det er det der er noget gylle. Det er to forskellige forespørgelser, og har ikke mulighed for at gøre det anderledes.
30. september 2005 - 13:12
#4
Prøv at vis dine 2 forespørgsler.
30. september 2005 - 13:41
#5
$tmpressql="SELECT kundenr, disp_forslag FROM exnetkundekamp WHERE varenr='".$varenr."' AND kampnr='".$kampnr."' AND kundenr IN(SELECT DISTINCT kundenr FROM kundeordrer WHERE varenr='".$varenr."')"; $tmpressql="SELECT TO_CHAR(bestillingsdato,'YYYY-MM-DD') as DATO, kundenr, antal FROM kundeordrer WHERE varenr='".$varenr."' AND kundenr IN(SELECT DISTINCT kundenr FROM exnetkundekamp WHERE varenr='".$varenr."' AND kampnr='".$kampnr."') ORDER BY TO_CHAR(bestillingsdato,'YYYY-MM-DD') ASC";
30. september 2005 - 13:52
#6
Og, der knækkede min elastik! :o)
30. september 2005 - 13:55
#7
Kan du ik lave et dump af dine arrays og paste her.
30. september 2005 - 13:58
#8
Kundenr disp Array ( [750620] => 1 [750778] => 2 [750810] => 3 [750828] => 1 [511162] => 4 [511170] => 1 [511188] => 3 [750422] => 2 [750729] => 2 [750836] => 3 [500405] => 2 [511220] => 2 [511246] => 1 [511428] => 4 [610055] => 0 [610063] => 3 [750232] => 3 [750240] => 2 [750299] => 2 [750489] => 1 [750521] => 2 [750539] => 3 [750547] => 2 [750570] => 0 [750687] => 1 [2002178] => 2 [511139] => 2 [511204] => 1 [511329] => 2 [514141] => 3 [750174] => 2 [750281] => 2 [750331] => 3 [750380] => 2 [750588] => 3 [750604] => 2 [750703] => 4 [750752] => 1 [750760] => 2 [750877] => 1 [750893] => 2 [750901] => 2 [750976] => 4 [2002160] => 1 [2004026] => 2 [2020097] => 2 [2312445] => 2 [2596252] => 2 [500140] => 2 [501072] => 2 [750224] => 2 [750356] => 2 [2150852] => 2 [2014157] => 2 [450023] => 3 [450445] => 2 [450494] => 2 [450577] => 2 [450585] => 2 [450601] => 2 [450627] => 2 [450700] => 2 [450734] => 2 [450759] => 3 [450866] => 2 [1056449] => 3 [1340447] => 3 [1460443] => 2 [1460625] => 2 [1460633] => 2 [1460708] => 2 [1460716] => 2 [1460724] => 2 [1460732] => 2 [1460740] => 2 [1460773] => 2 [1460781] => 2 [1460799] => 3 [1460823] => 0 [1460831] => 2 [1460898] => 3 [374785] => 2 [450171] => 3 [450296] => 2 [450338] => 3 [450528] => 1 [450874] => 2 [1139757] => 2 [1460880] => 2 [111047] => 3 [143016] => 2 [327445] => 3 [450304] => 3 [1271246] => 3 [450221] => 2 [450478] => 2 [450767] => 2 [450882] => 2 [450890] => 1 [311548] => 1 [355248] => 3 [375246] => 1 [450387] => 2 [450429] => 1 [450908] => 1 [103648] => 2 [143099] => 2 [235143] => 1 [245746] => 1 [322446] => 2 [450007] => 2 [450031] => 2 [450049] => 1 [450163] => 1 [450213] => 1 [450320] => 3 [450692] => 2 [450791] => 1 [450825] => 2 [450833] => 3 [1273044] => 2 [1415140] => 4 [137158] => 1 [142943] => 2 [151746] => 1 [152645] => 1 [327049] => 2 [355941] => 2 ) sum disp: 259 Kundenr ordrer Array ( [2005-09-21] => Array ( [750570] => 1 ) [2005-09-23] => Array ( [750521] => 1 [450338] => 2 [2002178] => 1 [750331] => 1 [1460708] => 1 [750547] => 2 [511204] => 1 ) [2005-09-26] => Array ( [511428] => 5 [1460831] => 2 [1460740] => 2 [750620] => 1 [2596252] => 2 [750729] => 1 [450171] => 3 [450445] => 3 [750810] => 2 [1460716] => 2 [1460781] => 1 [151746] => 1 [1460898] => 1 [103648] => 2 [511139] => 2 [750687] => 1 [1460633] => 1 [311548] => 1 [450221] => 1 [450882] => 2 ) [2005-09-27] => Array ( [450163] => 1 [1460732] => 1 [450700] => 1 [511220] => 1 [750380] => 5 [450049] => 1 [1056449] => 3 [235143] => 1 [450296] => 1 [450791] => 1 [322446] => 1 [511246] => 1 [450478] => 1 [375246] => 1 [750752] => 1 [1271246] => 2 [1340447] => 4 [500140] => 1 [750281] => 2 [511170] => 1 [514141] => 3 [511329] => 2 [500405] => 1 [1139757] => 1 [511188] => 2 [750893] => 2 [450866] => 2 [2002160] => 2 [750588] => 2 [1460443] => 3 [1460625] => 1 [450601] => 1 [750604] => 1 [750836] => 4 [450833] => 2 [355248] => 2 [450734] => 1 [750760] => 1 [750901] => 2 [450627] => 1 [374785] => 2 [1273044] => 1 [450874] => 1 [450825] => 2 [750703] => 2 [1460773] => 4 [450890] => 1 [450304] => 2 [750299] => 2 [2150852] => 2 [450429] => 2 [750422] => 1 [450023] => 2 [750877] => 1 [2312445] => 3 [750489] => 2 [750356] => 1 [1415140] => 3 [450007] => 2 [450494] => 2 [450528] => 1 [143099] => 1 [450577] => 2 [610063] => 2 [450585] => 1 [143016] => 1 [750240] => 1 [450908] => 1 [1460823] => 2 [2020097] => 2 [610055] => 4 [511162] => 3 [450320] => 2 [2014157] => 1 ) [2005-09-28] => Array ( [450759] => 1 [750778] => 1 [450213] => 1 [245746] => 2 [750828] => 1 [450387] => 2 [750976] => 4 [152645] => 1 [142943] => 1 [137158] => 1 [1460799] => 3 [111047] => 5 [501072] => 2 [1460880] => 1 [355941] => 2 [2004026] => 1 [450031] => 2 [1460724] => 3 [750174] => 2 [450692] => 1 [327049] => 2 [750539] => 2 [327445] => 1 [450767] => 1 [750224] => 1 [750232] => 2 ) ) sum ko: 221 sammeligning: Array ( )
30. september 2005 - 14:01
#9
Kan du ik lige smide et <pre> tag på ? ;) Det der er jo ganske ulæseligt.
30. september 2005 - 14:05
#10
Kundenr disp Array ( [750620] => 1 [750778] => 2 [750810] => 3 [750828] => 1 [511162] => 4 [511170] => 1 [511188] => 3 [750422] => 2 [750729] => 2 [750836] => 3 [500405] => 2 [511220] => 2 [511246] => 1 [511428] => 4 [610055] => 0 [610063] => 3 [750232] => 3 [750240] => 2 [750299] => 2 [750489] => 1 [750521] => 2 [750539] => 3 [750547] => 2 [750570] => 0 [750687] => 1 [2002178] => 2 [511139] => 2 [511204] => 1 [511329] => 2 [514141] => 3 [750174] => 2 [750281] => 2 [750331] => 3 [750380] => 2 [750588] => 3 [750604] => 2 [750703] => 4 [750752] => 1 [750760] => 2 [750877] => 1 [750893] => 2 [750901] => 2 [750976] => 4 [2002160] => 1 [2004026] => 2 [2020097] => 2 [2312445] => 2 [2596252] => 2 [500140] => 2 [501072] => 2 [750224] => 2 [750356] => 2 [2150852] => 2 [2014157] => 2 [450023] => 3 [450445] => 2 [450494] => 2 [450577] => 2 [450585] => 2 [450601] => 2 [450627] => 2 [450700] => 2 [450734] => 2 [450759] => 3 [450866] => 2 [1056449] => 3 [1340447] => 3 [1460443] => 2 [1460625] => 2 [1460633] => 2 [1460708] => 2 [1460716] => 2 [1460724] => 2 [1460732] => 2 [1460740] => 2 [1460773] => 2 [1460781] => 2 [1460799] => 3 [1460823] => 0 [1460831] => 2 [1460898] => 3 [374785] => 2 [450171] => 3 [450296] => 2 [450338] => 3 [450528] => 1 [450874] => 2 [1139757] => 2 [1460880] => 2 [111047] => 3 [143016] => 2 [327445] => 3 [450304] => 3 [1271246] => 3 [450221] => 2 [450478] => 2 [450767] => 2 [450882] => 2 [450890] => 1 [311548] => 1 [355248] => 3 [375246] => 1 [450387] => 2 [450429] => 1 [450908] => 1 [103648] => 2 [143099] => 2 [235143] => 1 [245746] => 1 [322446] => 2 [450007] => 2 [450031] => 2 [450049] => 1 [450163] => 1 [450213] => 1 [450320] => 3 [450692] => 2 [450791] => 1 [450825] => 2 [450833] => 3 [1273044] => 2 [1415140] => 4 [137158] => 1 [142943] => 2 [151746] => 1 [152645] => 1 [327049] => 2 [355941] => 2 ) sum disp: 259 Kundenr ordrer Array ( [2005-09-21] => Array ( [750570] => 1 ) [2005-09-23] => Array ( [750521] => 1 [450338] => 2 [2002178] => 1 [750331] => 1 [1460708] => 1 [750547] => 2 [511204] => 1 ) [2005-09-26] => Array ( [511428] => 5 [1460831] => 2 [1460740] => 2 [750620] => 1 [2596252] => 2 [750729] => 1 [450171] => 3 [450445] => 3 [750810] => 2 [1460716] => 2 [1460781] => 1 [151746] => 1 [1460898] => 1 [103648] => 2 [511139] => 2 [750687] => 1 [1460633] => 1 [311548] => 1 [450221] => 1 [450882] => 2 ) [2005-09-27] => Array ( [450163] => 1 [1460732] => 1 [450700] => 1 [511220] => 1 [750380] => 5 [450049] => 1 [1056449] => 3 [235143] => 1 [450296] => 1 [450791] => 1 [322446] => 1 [511246] => 1 [450478] => 1 [375246] => 1 [750752] => 1 [1271246] => 2 [1340447] => 4 [500140] => 1 [750281] => 2 [511170] => 1 [514141] => 3 [511329] => 2 [500405] => 1 [1139757] => 1 [511188] => 2 [750893] => 2 [450866] => 2 [2002160] => 2 [750588] => 2 [1460443] => 3 [1460625] => 1 [450601] => 1 [750604] => 1 [750836] => 4 [450833] => 2 [355248] => 2 [450734] => 1 [750760] => 1 [750901] => 2 [450627] => 1 [374785] => 2 [1273044] => 1 [450874] => 1 [450825] => 2 [750703] => 2 [1460773] => 4 [450890] => 1 [450304] => 2 [750299] => 2 [2150852] => 2 [450429] => 2 [750422] => 1 [450023] => 2 [750877] => 1 [2312445] => 3 [750489] => 2 [750356] => 1 [1415140] => 3 [450007] => 2 [450494] => 2 [450528] => 1 [143099] => 1 [450577] => 2 [610063] => 2 [450585] => 1 [143016] => 1 [750240] => 1 [450908] => 1 [1460823] => 2 [2020097] => 2 [610055] => 4 [511162] => 3 [450320] => 2 [2014157] => 1 ) [2005-09-28] => Array ( [450759] => 1 [750778] => 1 [450213] => 1 [245746] => 2 [750828] => 1 [450387] => 2 [750976] => 4 [152645] => 1 [142943] => 1 [137158] => 1 [1460799] => 3 [111047] => 5 [501072] => 2 [1460880] => 1 [355941] => 2 [2004026] => 1 [450031] => 2 [1460724] => 3 [750174] => 2 [450692] => 1 [327049] => 2 [750539] => 2 [327445] => 1 [450767] => 1 [750224] => 1 [750232] => 2 ) ) sum ko: 221 sammeligning: Array ( )
30. september 2005 - 15:30
#11
Forstår ikke helt hvad du vil så. Hvad vil du med det første array ?
30. september 2005 - 15:46
#12
Som du kan se, er det samme nøgle (kundenr) i begge arrays. Det jeg vil have gjort er at summere værdierne i multiarrayet og gruppere dem på datonøglen. [2005-09-21]=1 [2005-09-23]=9 [2005-09-26]=36 [2005-09-27]=131 [2005-09-28]=45 Og så skal det endimesionelle array ligeledes grupperes. Men der har jeg ikke nogen datonøgle at gå efter. Så jeg er tvunget til at tage de kundenumre der er i multiarrayet og gruppere efter dem. Gruppe [2005-09-21] [kundenr(750570)]=0 Gruppe [2005-09-23] [kundenr(750521),(450338),(2002178),(750331),(1460708),(750547),(511204)]=7 osv
01. oktober 2005 - 00:37
#13
Jeg forstår ikke hvad det endimensionelle array skal gøre godt for? Er de samme informationer ikke i det multidimensionelle (også)? For hvis vi antager at dit multidimensionelle array hedder $knrdates så burde du kunne opnå begge dele med: foreach( $knrdates as $date => $info ) { echo "[" . $date . "]=" . array_sum( $info ) . "<br>"; } echo "<br><br>2. del<br><br>"; foreach( $knrdates as $date => $info ) { $tmparr = array_unique( array_keys( $info ) ); $kntmp = implode( ',', $tmparr ); echo "Gruppe [" . $date . "]<br> [" . $kntmp . "]=" . count( $tmparr ) . "<br>"; }
02. oktober 2005 - 22:01
#14
Nej, nöglen er den samme. Värdien er ikke den samme.
03. oktober 2005 - 10:19
#15
Det er i og for sig OK, det du har lavet coderdk. Så skal den endimensionelle array bare summeres og grupperes via de nøgler der er taget frem i "del 2".
03. oktober 2005 - 11:09
#16
Ok, men jeg er ikke helt med på hvordan du vil gruppere dem i det flade array, vha dem i det multidimensionelle...
03. oktober 2005 - 11:27
#17
De nøgler (eller værdier i din $tmparr) skal summeres i den endimensionelle. Jeg er lige ved at have den.
03. oktober 2005 - 11:44
#18
foreach( $arr as $date => $info ) { echo "[" . $date . "]=" . array_sum( $info ) . "<br>"; } echo "<br><br>2. del<br><br>"; foreach( $arr as $date => $info ) { $tmparr = array_unique( array_keys( $info ) ); $kntmp = implode( ',', $tmparr ); echo "Gruppe [" . $date . "]<br> [" . $kntmp . "]=" . count( $tmparr ) . "<br>"; //print_r($tmparr); print_r(key_values_intersect($arr2,$tmparr)); echo"<br>SUM:"; echo array_sum(key_values_intersect($arr2,$tmparr)); echo"<br>"; } function key_values_intersect($vardi,$nogle) { foreach($nogle AS $key) { $key_val_int[$key] = $vardi[$key]; } return $key_val_int; } Der sad den. Læg et svar coderdk.
03. oktober 2005 - 12:39
#19
hehe ok :D
05. oktober 2005 - 11:15
#20
Ups glemte dig ;o)
Vi tilbyder markedets bedste kurser inden for webudvikling