thx a lot for your answer, in fact i only have to return one of the 15 datas, so it makes one column... anyway, i already coded a solution with a while. My question was just to know if it was possible to do it without repeating 1000000 times the same processing.
In fact i begin to believe that it is not possible to reverse the 2 dimensions of an array... If you have a solution for me i m interested, even if it takes a lot of processor ressources because i will have a dedicated server and there wont be more than 30 users, not at the same time (that s for a stat intranet)... just to correct my unprecision again, there will be 1M datas to process not 15 because the array i ve to process is the result of my mysql query and that this query will only return a single column of datas (count(*) ) Helllpppp :) Etienne ----- Original Message ----- From: "DL Neil" <[EMAIL PROTECTED]> To: "Etienne Durand" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Thursday, January 31, 2002 10:44 AM Subject: Re: [PHP-DB] how to reverse a hudge multidimensional array? > Etienne, > > > Well i hope someone will be able to give me a solution... > > Here s my problem: > > I'm working with a hudge mysql table (about 15 columns and 1000000 rows...) > > > > in fact i ve got to count the number of couples `ncompte`/`naffaire` in the > > table and finaly calculate the number of couples that appear once, twice.... > > > > here is the query i do: > > $result = mysql_query("SELECT count(*) FROM datas GROUP BY `ncompte`, > > `naffaire`"); > > > > its result like something like this: > > count(*) naffaire ncompte > > 4 affaire1 compte1 > > 4 affaire2 compte2 > > 1 affaire3 compte3 > > 2 affaire4 compte4 > > 1 affaire5 compte5 > > > > (plus many more) > > > > > > my final result should be: > > $result[1] : 2 > > $result[2] : 1 > > $result[4] : 2 > > > > I manage to do this quite easily but i use a while instruction... > > > > while($row = mysql_fetch_array($result)) { > > array_push($suite, $row["count(*)"]); > > } > > > > As my table is very long the while takes a lot of time to complete... > > So my question is : Is there a solution to return my array as follow : > > > > 1 2 3 1 4 7 > > 4 5 6 ===>> 2 5 8 ??? > > 7 8 9 3 6 9 > > > > It would allow me to not have to use this long long while.... > > So if someone could telle me how to modify my query or what instructions to > > use to do that... > > > =there are various functions in PHP to 'reverse' arrays, but I must confess that I have never used them. > Regardless, if there is one to suit your purpose, it will surely consume CPU time to achieve the swap-over of > 15M items. > > =your example "my final result should be:" talks of enumerated arrays, so I shall assume this is the way you > always use them. > > =you want to somehow achieve: > array[1][1] = array [1][1]; > array[1][2] = array [2][1]; > array[1][3] = array [3][1]; > etc > (you know that you can't do the above, right!?) > > =thereafter the array would be processed by using a mechanism such as two nested FOR loops to iterate through > the row/column elements of the array, eg > > for ( i=1; i<15; i++ ); > for ( j=1; j<1000000; j++ ); > process( array[i][j] ); > etc > > =can you leave the array where it is, and adjust the way the iterations are managed? Instead of proceeding > methodically by counting 'up', count 'down', eg > > for ( i=15; i>0; i-- ); > for ( j=1000000; j>0; j-- ); > process( array[i][j] ); > etc > > =Regards, > =dn > > > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]