Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:62336 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 67831 invoked from network); 21 Aug 2012 09:37:28 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Aug 2012 09:37:28 -0000 Authentication-Results: pb1.pair.com header.from=yohgaki@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=yohgaki@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.212.176 as permitted sender) X-PHP-List-Original-Sender: yohgaki@gmail.com X-Host-Fingerprint: 209.85.212.176 mail-wi0-f176.google.com Received: from [209.85.212.176] ([209.85.212.176:56513] helo=mail-wi0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 0C/A0-64184-6D653305 for ; Tue, 21 Aug 2012 05:37:27 -0400 Received: by wibhn17 with SMTP id hn17so3750651wib.11 for ; Tue, 21 Aug 2012 02:37:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=DIQES6P70TCa7tgZ+OCQoaNwINnzvhYC9qMALuezAjo=; b=ySxhO3A1YRbcaGHlYxHVfsZ6XhI8FnZ194nU8OCWdpe8doE0stXU1ZVNkhwpMjE08E Vc9M+9smWNCiRPwL1S3gi/Yc1hZd4QEroye7TbCC+O0dXH70QgepaN+B5CgRQ+9YeJnd ++3e58e7tsTl3Djb6YbEN/MQxHItCB3TVJFztSRLov+B8r3G/EG4ztDSHv+VelcfR26R 1I1eiF0oLHORsPT/2/z+YhOCPs0bmFFi+iYbdY0qTMT5ZMA4OBIV3xsePRZTJS1AsG35 LV896xUP04AKmHQAWputkJWBV1V8vFA7UqYoGrauLRr2UHXOzOxc+XMFG7ae508InwBf LSSQ== Received: by 10.216.195.40 with SMTP id o40mr9178287wen.36.1345541844005; Tue, 21 Aug 2012 02:37:24 -0700 (PDT) MIME-Version: 1.0 Sender: yohgaki@gmail.com Received: by 10.223.86.201 with HTTP; Tue, 21 Aug 2012 02:36:43 -0700 (PDT) In-Reply-To: References: <502EB667.1020602@lerdorf.com> Date: Tue, 21 Aug 2012 18:36:43 +0900 X-Google-Sender-Auth: xIY0SE-pua5MB3eZH6AJsMz4Y6A Message-ID: To: Tjerk Anne Meesters Cc: Rasmus Schultz , internals@lists.php.net Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [PHP-DEV] re: removing an item from an array From: yohgaki@ohgaki.net (Yasuo Ohgaki) Hi 2012/8/21 Tjerk Anne Meesters : > On Tue, Aug 21, 2012 at 10:31 AM, Rasmus Schultz wrote: > >> Thank you, but this isn't really anything like what I had in mind. >> >> What I had in mind is more like set-semantics for arrays, e.g. designed to >> work with sets of distinct values/objects. >> >> Since I do not have permission to write on the wiki, I posted an initial >> draft here: >> >> https://gist.github.com/321ad9b4b8c4e1713488 > > > Just an idea, since array_delete() may remove multiple values, I would > change the return value to (int) and return how many elements were removed > from the array. Int would be better and callable should be accepted like array_walk(). It's better to have array_delete_recursive(), too. I updated the page. array_add() needs more discussion. What we should do with array value, accept callable or not, etc. Regards, -- Yasuo Ohgaki yohgaki@ohgaki.net > > >> >> >> >> On Mon, Aug 20, 2012 at 10:10 PM, Yasuo Ohgaki wrote: >> >> > Hi, >> > >> > 2012/8/21 Rasmus Schultz : >> > > I have a login (mindplay) but I do not have permission to post or edit >> > > anything on the wiki... >> > >> > I've created RFC for this >> > >> > https://wiki.php.net/rfc/array_delete >> > >> > Get wiki account and finish discussion. >> > I may write patch for this with my spare time, but >> > it may take while to find time. I suggest write patch >> > and send pull request. >> > >> > Regards, >> > >> > -- >> > Yasuo Ohgaki >> > yohgaki@ohgaki.net >> > >> > > >> > > On Mon, Aug 20, 2012 at 8:01 PM, Will Fitch wrote: >> > > >> > >> Please let this die until someone is serious enough to come up with an >> > >> rfc. This has been nothing but counterproductive arguing. If someone >> > feels >> > >> strongly about it, write an rfc then we can discuss? >> > >> On Aug 20, 2012 7:53 PM, "Yasuo Ohgaki" wrote: >> > >> >> > >>> Hi, >> > >>> >> > >>> 2012/8/21 Herman Radtke : >> > >>> >>> May be we should have something like >> > >>> >> >> > >>> >> >> >> > >>> >> >> array_delete_if($array, function($v, $k=null) { if ($v == 300) >> > >>> return >> > >>> >> >> true; }) >> > >>> >> > >> > >>> >> > So array_filter? >> > >>> >> >> > >>> >> 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. >> > >>> > >> > >>> > >> > >>> > You are basically asking to alias array_filter with "array_delete". >> > >>> That is >> > >>> > a very slippery slope. I think array_filter is very a very obvious >> > >>> choice to >> > >>> > remove something from an array. The "filter" function/method is >> > common >> > >>> in >> > >>> > functional languages (and functional frameworks like Underscore). >> > >>> > >> > >>> > These are things developers just need to learn as part of >> > development. >> > >>> > Really, this is entire thread should be on stack overflow, not >> > >>> internals. >> > >>> >> > >>> I guess you haven't read later post. >> > >>> >> > >>> You've also made a novice mistake. >> > >>> array_filter() DO NOT delete elements, but creates new array. >> > >>> array_delete() is another form of array_walk(), not array_filter(). >> > >>> See my posts. >> > >>> >> > >>> Having a API for dedicated task is good thing. >> > >>> Who would argue array_pop()/array_push() isn't needed? >> > >>> >> > >>> Regards, >> > >>> >> > >>> -- >> > >>> Yasuo Ohgaki >> > >>> yohgaki@ohgaki.net >> > >>> >> > >>> -- >> > >>> PHP Internals - PHP Runtime Development Mailing List >> > >>> To unsubscribe, visit: http://www.php.net/unsub.php >> > >>> >> > >>> >> > >> > > > > -- > -- > Tjerk