Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97504 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 3485 invoked from network); 3 Jan 2017 10:23:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Jan 2017 10:23:24 -0000 Authentication-Results: pb1.pair.com header.from=marijic.silvio@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=marijic.silvio@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.44 as permitted sender) X-PHP-List-Original-Sender: marijic.silvio@gmail.com X-Host-Fingerprint: 209.85.214.44 mail-it0-f44.google.com Received: from [209.85.214.44] ([209.85.214.44:37002] helo=mail-it0-f44.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 1C/88-55609-B9B7B685 for ; Tue, 03 Jan 2017 05:23:23 -0500 Received: by mail-it0-f44.google.com with SMTP id o141so272265648itc.0 for ; Tue, 03 Jan 2017 02:23:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=B/LSu3BhSSNBudhm1NkabYSmrdt528VFHrtnCvLpp4w=; b=CIlntxtogZVTRgtRImxV0hv38sVB0N07S6Hx0ugxM0H7aZ6xx5xZT1gyev7Tu9DyFp 1m+owHsehEs2CDcz0SMEDefg87kEKz/EzEHgm7BYdBln27XMigwwu6L3EXyRgAtLKFta d9jnesnSJ3Renivr0wwUSIq1a8au27Mvjyay7/VqJiOnsAIK7EhhyfkTQUWpjfVONK/F B1rDuMLGsPQqD74k8z5FIlcw4HHyVzsRsHwdu4ScHZNBEK2fB2aECeZUcTsh49bxypfu I+MespQt96BB5hrSgNotz4Hwr0LfOs4m0bOBEX5QBDG37axou1SZjXeVA1grUBaJvU11 61kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=B/LSu3BhSSNBudhm1NkabYSmrdt528VFHrtnCvLpp4w=; b=ToQqRO09DNTSplqfOv2EbdchkUOTVR4xKQelxY2jrdeCTtfhXce9IKN8u/R/MtpOKT 7Cp81B9d2VypJi4lLS3KzpwQ0q3mqMqQ7i3wUSi7UFa5QsugaWNRUPmD0p8duskQvpxP ucgrXnvluPMvmQ7HU522cvgpDeJ2PqdouazlbelUFaoH5sn7ZhkzWI35Lj/RwMC2zKBY FM3/BMwX/rRum7nr7cE6LK2X986CpE2pO1Y2RXoqym+ibe+DocjFS4FNQbrzDT6A2Sk7 haP2PQdfafpKhXZf/UVr9Da2SnAdkB2TBBpFMpY2KIH3lyjp7J1YBQxNZr1WLipmE/zI JoAw== X-Gm-Message-State: AIkVDXIOlz2yUv1u3YhraW9Hc8MTarjSpTxvUJQhE74ngbgReds2ZMsS5Nnn88xlezii57J+nyQQikrMyHT4uQ== X-Received: by 10.36.74.197 with SMTP id k188mr49392882itb.1.1483439000760; Tue, 03 Jan 2017 02:23:20 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.110.142 with HTTP; Tue, 3 Jan 2017 02:23:20 -0800 (PST) Date: Tue, 3 Jan 2017 11:23:20 +0100 Message-ID: To: PHP Internals List Content-Type: multipart/alternative; boundary=001a11445d26afb96005452e0ea5 Subject: ArrayObject Stream API From: marijic.silvio@gmail.com (=?UTF-8?Q?Silvio_Mariji=C4=87?=) --001a11445d26afb96005452e0ea5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, Happy new year to everyone. I would like feedback on idea to add stream api to ArrayObject, something like array_map and array_filter. Consider following example $students =3D new ArrayObject(); //... $bestStudents =3D new ArrayObject(); foreach($students as $student){ if ($student->grade() > 4) { $bestStudents[] =3D $student; } } And example with Stream API. $bestStudents =3D $students->filter( function($student){ if ($student->grade() > 4) return true; } )->map( function($student) { return "{$student->firstName()} {$student->lastName()}"; } ); I gave example only with map() and filter(), but there are also couple of others functions which could end up here. Cheers, --=20 Silvio Mariji=C4=87 Software Engineer 2e Systems --001a11445d26afb96005452e0ea5--