Re: re: removing an item from an array
| From: | Andrew Faulds | Date: | Sun, 19 Aug 2012 23:08:05 +0000 |
| Subject: | Re: re: removing an item from an array | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-62269@lists.php.net to get a copy of this message | ||
On 20/08/12 00:05, Yasuo Ohgaki wrote:
2012/8/20 Etienne Kneuss <colder@php.net>:On Sun, Aug 19, 2012 at 11:57 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:I'll use it or like for deleting, but the point of this thread is "intuitive function for deleting element(s)" array_delete($array, $value|callable) would be nicer for users, perhaps. A callable? Wouldn't that mean you couldn't delete strings? :(2012/8/18 Rasmus Lerdorf <rasmus@lerdorf.com>:So array_filter?On 08/17/2012 05:21 PM, Rasmus Schultz wrote:Ruby can do (using irb) ruby-1.9.2-p180 :007 > h = {"apple"=>150, "banana"=>300, "lemon"=>300} => {"apple"=>150, "banana"=>300, "lemon"=>300} ruby-1.9.2-p180 :008 > h.delete_if { |k,v| v==300 } => {"apple"=>150} May be we should have something like array_delete_if($array, function($v, $k=null) { if ($v == 300) return true; })Really? I can't think of a single language that has a call to remove an element by value in a key-value hash. Do you have some examples? What do you do with duplicates?if(($key = array_search($del_val, $messages)) !== false) {I disagree - this is (or should be) a simple, atomic operation... yet, you've got a function-call, an intermediary variable, a boolean test, and an unset statement repeating the name of the array you're deleting from. This should be a simple statement or function/method-call, and in most other languages it would be...unset($messages[$key]);} Nothing horrible here.
-- Yasuo Ohgaki yohgaki@ohgaki.net-- Andrew Faulds http://ajf.me/