Reply to Re: Finding elements of an array in another multi-dimensional array

Your name:

Reply:


Posted by Curtis on 02/03/07 13:56

On Thu, 01 Feb 2007 10:18:17 -0800, Sandman <enjoylife_95135@hotmail.com=
> =

wrote:

> On Feb 1, 3:28 am, Erwin Moller
> <since_humans_read_this_I_am_spammed_too_m...@spamyourself.com> wrote:=

>> Sandman wrote:
>> > Hi,
>> > So I have 2 arrays:
>> > one contains userids. It may look like:
>> > user_id[0] =3D> 12,
>> > user_id[1] =3D> 30,
>> > user_id[2] =3D> 43
>>
>> > The other is a multi-dimensional array with fields like:
>> > user_info [0] =3D> Array
>> > (
>> > [user_id] =3D> 13
>> > [user_flag] =3D> 1
>> > [url] =3D>http://www.example.com?index,0
>> > )
>> > user_info[1] =3D> Array
>> > {
>> > Array
>> > (
>> > [user_id] =3D> 120
>> > [user_flag] =3D> 1
>> > [address] =3D> 1234 Main St, Anytown, USA
>> > [url] =3D>http://www.yahoo.com
>> > )
>> > user_info[2] =3D> Array
>> > {
>> > Array
>> > (
>> > [user_id] =3D> 130
>> > [user_flag] =3D> 1
>> > [address] =3D> 134 Main St, Anytown, USA
>> > [url] =3D>http://www.google.com
>> > )
>>
>> > I need to find all elements in user_info, where user_info[]['user_i=
d']
>> > =3D=3D user_id[] for every element of user_id.
>>
>> > Is there a quick and easy function to do this? My current loop look=
s
>> > like:
>> > for ($i=3D0; $i<count($user_id); $i++) {
>> > for ($j=3D0; $j<=3Dcount($user_info); $j++) {
>> > if ($user_info[$j]["user_id"] =3D=3D $user_id[$i]) {
>> > $newarray[$i] =3D $user_info[$j];
>> > break;
>> > }
>> > }
>> > }
>>
>> > This is crappy though and I'd love to speed it up. Suggestions
>> > welcome.
>>
>> > Thanks!
>> > EL
>>
>> Hi Sandman,
>>
>> In my humble opinion that code is not crappy at all.
>> Maybe you can find (a combination of) array functions, or even regexp=
=

>> if you
>> feel really adventurous, that do the same job, but your approach is =

>> clear
>> and easy to understand for anybody that reads the code later (includi=
ng
>> you).
>> This is just my opinion, but if I should make a list for code, this i=
s =

>> the
>> order of importance:
>> 1) clearity of code
>> 2) speed of the code
>> 3) length of the code
>>
>> And I only care for the speed of the code if there is a reason to wor=
ry,
>> like repetive SQL-queries.
>>
>> Regards,
>> Erwin Moller
>
> Thanks Erwin. For some reason that script (which does more than just
> the loop) was taking a very long to load. After posting here, I stuck
> microtime() before and after the loop, but found that even when
> user_info[] had 10000 entries it took less than 10 ms. So the slowness=

> is elsewhere.
>
> So I'm going to leave my loop like this, but look elsewhere for the
> slowness. Back to the drawing board
>
> Thanks everyone.
> S

You could probably speed up the execution time by using better queries o=
n =

your database. It seems like a JOIN could take care of your PHP processi=
ng =

there, but I may be/probably am wrong.

-- =

Curtis, http://dyersweb.com

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация