UGN Security
I recently was asked to make a search that filtered on 5 different variables. Now that isn't that hard. in MySQL it would be something like

SELECT * FROM TABLE_NAME_HERE WHERE This = '$That' "
." and This2 = '$That2'"
." and This3 = '$That3"
."";

You get the idea.

Problem was not allways would all five variables be used.(is that proper english?) So I found myself researching multi-dimensional arrays and using that instead.

http://www.php.net/manual/en/function.array.php

Now the cool thing about using arrays is I found it to be pretty close to using a database. I have used arrays befor, but never with more than 3 demesions. Using PHP What I did was search the database on the only variable that would allways be used. Then I filtered the array from there. I removed the unwated array elements using unset ()

http://www.php.net/manual/en/function.unset.php

Then re-ordered the array to be able to get its results using array_values()

http://www.php.net/manual/en/function.array-values.php

However, after further reading I find array_values() dose not overwrite the old array, instead it creates a new one. Now with a huge array this could be a memory issue could it not?

I am looking for any thoughtful feed back on this as to what a efficent work around might be.
array :x
http://www.zend.com/zend/tut/tutorial-ferrara1.php

Wrote that tutorial for zend a bit back.
Don't know enough about PHP to provide a definitive answer, but based on general programming theory, I think it's safe to say that using the database would be best. Think about the differences in implementation. In the database, you have a system which has had thousands of hours put into it, and is incredibly optimized. Compare that to whatever algorithm you come up to filter the results in the array. I guarantee you the database is going to be better. Furthermore, the database is implemented in native code, so it'll run far more quickly than a similar algorithm done in an interpretted language (PHP). Combine the database's caching mechanisms...and it's a lot faster and smarter to just let the database handle that.
© UGN Security Forum