ID: 23964 User updated by: prof_moriarty at veryfast dot biz Reported By: prof_moriarty at veryfast dot biz Status: Wont fix Bug Type: Feature/Change Request Operating System: Win98 se PHP Version: 4.3.2 New Comment:
Unless you hadn't noticed, there isn't really much 'multi-level' functionality in PHP anyway!?!?! (as in the ability to manipulate them easily). Let's see what we can find: array_multisort : great function. that's really about it. Sure numerous other functions can mess with them, but mostly you'd have to put them into a loop to actually get through all the dimensions. Even the noted 'array_sum' doesn't work with multi-dimensionals (or at least i spotted a post somewhere in this bug collection that stated as much). When you say "would be much slower", Do you mean from a processing front (several micro seconds), or from a coding front (in which case any proposed function would be quicker than writing it yourself)? If you mean by time, then i'd only have to guess (noting my lack of knowledge of benchmarking and C/++) that the proposed function would actually gain a speed boost from being written into PHP's core, primarily because it requires a loop (and on each iteration, a little more time would be gained over a PHP implementation). As you can probably tell, i don't plan on abandoning this little function without a fight, simply because it can be 'user implemented' (which i recognise and appreciate is a criteria for inclusion). Previous Comments: ------------------------------------------------------------------------ [2003-06-04 09:58:00] [EMAIL PROTECTED] I also think we shouldn't add the multilevel functionality here, as it's pretty easy to do in userspace (yes, array_sum() should have been something for userspace too). All other functions you mentioned *can* be done in userspace, but would be much slower. ------------------------------------------------------------------------ [2003-06-04 09:54:56] prof_moriarty at veryfast dot biz Yes, but that's not the point. array_sum can be done in user_space. as can: array_fill, array_pad, array_pop array_push array_rand array_count_values Indeed, most of the array_ function can be done with a couple of lines of code. i.e. array_push: >From the manual!!!!: "Has the same effect as: $array[] = $var;" That's just ONE line of code, and an apricot could get in it's sleep. :) Noting that it was only the third attempt that got it even relatively correct, it goes to show that it's not so simple... (i've been playing with PHP for 2+ years, and the other wrong one was a @php.net type!!!) So could someone _please_ unset this as 'won't fix' (seeing as i can't), and reset to 'open? Thanx ------------------------------------------------------------------------ [2003-06-03 22:22:03] [EMAIL PROTECTED] can be done in user-space.. :) ------------------------------------------------------------------------ [2003-06-03 12:37:56] prof_moriarty at veryfast dot biz fair point & good catch. Mind, now you've gone and re-inforced my point about us 'mere mortals'. ;) I'm assuming 'php-general is the general mailing list. ------------------------------------------------------------------------ [2003-06-03 06:36:08] [EMAIL PROTECTED] This should be on php-general by now, but... Why the inner foreach? According to the stated problem, you *know* which key you're looking for, so why not go straight for it? So... function proposed_function($array, $key) { $total = 0; foreach($array as $subarr) if (isset($subarr[$key])) $total += $subarr[$key]; return $total; } ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/23964 -- Edit this bug report at http://bugs.php.net/?id=23964&edit=1