Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119828 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 45817 invoked from network); 6 Apr 2023 20:52:06 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 6 Apr 2023 20:52:06 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2CDF8180503 for ; Thu, 6 Apr 2023 13:52:05 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8075 40.104.0.0/14 X-Spam-Virus: No X-Envelope-From: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2136.outbound.protection.outlook.com [40.107.22.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 6 Apr 2023 13:52:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hrwtmgHJ/HY9zUQy5qlkoZ8grizzIzPtBZ8hCNBBQLiA+XVUuRpn6AcA/7yCcamvCWTZ+h1DbriNUBb5GYjZFF25CbcN7sO6NJtvnojHdSwl1fRe10aByEaEdECtOeyLPFrmR59TS7lANpXiPwAKP3b41zXw0PfAoIJkSDF6tDJR4Ynt0x/MGi+aNoLl1Vigoq7P/nO//IE8RHuLPLtvSPwMWkBdPEwPDk9hzXfiTAonOJPNupGWCiiKNjWBuQ1y1YjQOTR7MqeSjXnuLtp70pKG6M5elMK37b5h6Srx2jKGI3Cdvn0N5eq4mgDAB7ucKBrzMZ5jIch7gdo35rVPuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=D1SY6uandpxKJ9FXWkQLKD2qciRzWR1WI3+/k0IN2do=; b=UaxGqSPU6KEWkkVAKfbxq+k8FnneEzkoEuNDH3A8LHIahFexSP2cvGpB7o6/hO3GFhDM3urezEOg+bOg5F/H+g34Xuk+0bkaJVs7ctqRrxmriQTug/TWiIM4AXmBq4j0wg0VItG38sbLl7JXcVRS9mj8dp1/A1YbfPXyFVQDKg8MYtyKfcs6fLyXJr0SIuoqvx4U91sAvu66t90YQiAFEgimQqSKXshvPjHrjGwXPH7jsi7h/En7kuJ1iHx/e3QQVQPfn/ByMTlCmiK2jKRe27I6EWZvzRid3EXmSLx5NwYvqZfddeWkubHgmupEvcvwxbuiit7SRGMPsTwK1Y7D4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fjfi.cvut.cz; dmarc=pass action=none header.from=fjfi.cvut.cz; dkim=pass header.d=fjfi.cvut.cz; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fjfi.cvut.cz; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D1SY6uandpxKJ9FXWkQLKD2qciRzWR1WI3+/k0IN2do=; b=XHnV4QVkDUOsy2qOE+Nw6kh0DrOkqsDpArEkfbCEsk1l0NlUL/Jz2duvchTOWe/KyzSiIEDQkuhDaHiVCp/jmAhcG6KBv79tHoyDHIBg3vOMfngTbOF1eXrESamxL9lglXGU/c06zEv1AkLDS0jqxL4UcTK5kzB02Wyd0qYVU2w= Received: from GVXPR06MB8972.eurprd06.prod.outlook.com (2603:10a6:150:123::11) by AM0PR06MB5969.eurprd06.prod.outlook.com (2603:10a6:208:10f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.31; Thu, 6 Apr 2023 20:51:56 +0000 Received: from GVXPR06MB8972.eurprd06.prod.outlook.com ([fe80::e4dc:2186:cd7d:c00a]) by GVXPR06MB8972.eurprd06.prod.outlook.com ([fe80::e4dc:2186:cd7d:c00a%4]) with mapi id 15.20.6277.030; Thu, 6 Apr 2023 20:51:56 +0000 To: PHP internals Thread-Topic: [PHP-DEV] Array spread append Thread-Index: AQHZaArhDQbwWEJJB0G6JU0PYZSu868eEkYAgAAUpzWAADpaAIAAVZaS Date: Thu, 6 Apr 2023 20:51:55 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fjfi.cvut.cz; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GVXPR06MB8972:EE_|AM0PR06MB5969:EE_ x-ms-office365-filtering-correlation-id: 4f03c3c5-9ea4-44a2-2ee9-08db36e0c1cd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 95QLCBYXzhTdXRHzbqAciQt8vjuFMddGtDcXiLItnvbhmg3P1+9qSAWJ1ArKA78Qx/c1ZeNCVeSdVSa94X3pw3AbJfr0Jj0v1KlsIXZruSIxynsLNDyZeKrFtbbXQJpS/f2KnpWxFtpZM6/x2UBjY2MuV3nt7exCOPdJHs+z6u8DyplXleUwKhkaI+FhDWENeUwAPvDNNilWzCT/b2A0lbhCjZytCUZk7dt1R87jPxCc/sWNmSV554XsH8zyCj8l0GM/uPRx3i0J+u6Wd7zHfRCVIA6lvkEejxHkId2uYkcMP8WvTzs84UPUv/i+nGMSaCmonEWe+5PAES7Sluym0byWdssXFPUwUJjRMOtdoDcPld+MzSc99nD76gPVZdCwo17E3P2mHl4uJkKIBb0vgu6X3QlDT3ocrMn88s22DeDZzQBYNOBsGm7891ZPEUm/Den76BvO2+aL3mhUOPL4DQyKS0lgLPKBnZmuULB/NSuP5SltH+/Dd697uQK3L61L2tcdtUSZArxQ8khxWZc3L9R/240iQbmPidA8MrHvj9s/xI1CbL8AQGKUN7gkExw5itrN0Ro+FecupJZiOAPlk6Wr5wJZbs+kDGGJ5DswZMo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR06MB8972.eurprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(376002)(396003)(136003)(366004)(346002)(39860400002)(451199021)(2906002)(41300700001)(52536014)(8936002)(91956017)(6916009)(8676002)(64756008)(66446008)(76116006)(66556008)(66476007)(66946007)(19627405001)(5660300002)(83380400001)(478600001)(786003)(316002)(71200400001)(966005)(7696005)(6506007)(9686003)(186003)(53546011)(55016003)(33656002)(166002)(122000001)(38100700002)(41320700001)(38070700005)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-2?Q?vvmcv24eoBnrxBWgIAD3ZHs48QbF61+YkQzlqXQfNoWlGb7UK+4z45byd6?= =?iso-8859-2?Q?+Brm8unByB28so9cf9UUMKN00RuJGv34jQhCwfA2d6kjBs3vfyAGMX6idm?= =?iso-8859-2?Q?WNdf/13ELFvSI9F7PlDLrnre5paaWUmAMNi4vJTEbQEZ7eFtirfVnhheaR?= =?iso-8859-2?Q?Bvb0QDhlx/VahAXF+BxWoN/ZOCrPnQbxODct33PKP7jxLlh7GU6ckCz4Yy?= =?iso-8859-2?Q?TMB7t7yefPsjRQLLwYEInuhQUm+/Rv+OJW/Y9QdGwKJnlXedhVWFEfDEZa?= =?iso-8859-2?Q?J7dvq8my7MZ9UKs+2BWBVT6Kvhx5PCmLECgi0Q8uYlOi0IEedg/WgumYXL?= =?iso-8859-2?Q?jCBRnnHe2TvvBkfeWQtieri5A5n8/fUPCkGcWnAd1/Gc9ZHdmKhe+It8qN?= =?iso-8859-2?Q?k+/yL5v6zwjNHu5JpFQNuzp5u8hmKYxIHPw5wtkWiqeYWu3IJ0ZMVHhZKO?= =?iso-8859-2?Q?HKEx2zEuJaIv71lrZN2zQlgcYNaJfuBC9ewLXYtm+KV6CA/CCOpRm4O6A1?= =?iso-8859-2?Q?np9r2db+rn8c3g9c6/ku9mlxNp7nzrpiVbpI6SSmbxehwnaPGk3YOZ3zg7?= =?iso-8859-2?Q?EJgohpyKayzFfG4bNjUVJiAwBCBjEM+TBAtVZOWyM5AzumoOLNcjaBFCh5?= =?iso-8859-2?Q?gecYRsBCsLB2wCU9NTZsGy4wxM09iHglDHHv4HL9ZW4uZsLI2/O2fee74o?= =?iso-8859-2?Q?+0jRAGGh8GeeCQFkTYHslIlIfKRGoyNZIDEqfsvYiD0yOcxzHIl5fKEqFM?= =?iso-8859-2?Q?urGzBF2fk56DqvgX/LQbeutalKoPM/3vzZhbmqzlK+01ynOHxpPuEhVTbt?= =?iso-8859-2?Q?Wxo4m2rbNBcnPiFCE3PYA8jYYkUYVG1LcwUyzbExF9jtPGjTaThI/IT87u?= =?iso-8859-2?Q?XyFWIg2bBhxEhRW0XSZ6ktZ8sTpFAw7d+1GcKMrboqdlOIQ7+qwLEKqHw8?= =?iso-8859-2?Q?BHYaKrPsBqxRzsOP0OU5EkgCw9zsVWAR8YSANmTh2RQgZQiv8cjsgUkGqt?= =?iso-8859-2?Q?lkqPzCx1ykM9n80YZWE2YWZiTLX2w6YjJqjuMUYuuthC2WdCp9vPP3+A5g?= =?iso-8859-2?Q?m5OT5JHtjsw2ABBjVimNU7vI7eF+uR8Sm746Vxfy+w59NKCXLIx62be8uC?= =?iso-8859-2?Q?CQilkvQMPmfClH5a/+ykK6F9Idbb0fZxjKPy/24o1K/fa4dAbo36PyS0YE?= =?iso-8859-2?Q?0M4PVaF9f0lBzOWzlb7GQFMwe0lqrh3BJVtKt6uAALnVnQcCnmPyomQ4ZA?= =?iso-8859-2?Q?Pdn6MOA0uDL4JXvbIh23E20yObjBKawDIP6cSgBkZkBnqrqw8yLcA7zfMd?= =?iso-8859-2?Q?6mdVPj4oM/fbRS8CCTUwavHMDaJDnVP0f5AdYnZLT1L54W9TLYtieBRo73?= =?iso-8859-2?Q?jHcw6TYaQsXSDtqiCp1/xrFxoEFXRExAm4h8XpBkYyAiuFk0lH2JCPviRI?= =?iso-8859-2?Q?jaXzQfGY97kZ3U08s5RyvB538QgoN51XT9VvTFd5JIVaMEBYqKCw8ChWDM?= =?iso-8859-2?Q?n+oDzjBE2IbGjyoNwL9fvAga+CTTrh9Oy0kwY9JudiMXY3kVbSV3wK4qXa?= =?iso-8859-2?Q?Wu6A528tZ15MZ994Boh3dtQxVvvTrw8xM/gzqx/hjan9zWLu/1NJOauTkN?= =?iso-8859-2?Q?68+Qdp53w0jcK54Hh8AHYXOIxmGPWtUQ9E?= Content-Type: multipart/alternative; boundary="_000_GVXPR06MB897288CBFAC593381988D107B2919GVXPR06MB8972eurp_" MIME-Version: 1.0 X-OriginatorOrg: fjfi.cvut.cz X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GVXPR06MB8972.eurprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f03c3c5-9ea4-44a2-2ee9-08db36e0c1cd X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2023 20:51:55.5036 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f345c406-5268-43b0-b19f-5862fa6833f8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QmPSom8T7XRQTWnT7y1vfvbUjcsjHY8X6Y9CryiN7RadArK+bur40Ym1vx9h3kFJQlaaJiQkHLMr2BKwdcz+3Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR06MB5969 Subject: Re: [PHP-DEV] Array spread append From: vorismi3@fjfi.cvut.cz ("Vorisek, Michael") --_000_GVXPR06MB897288CBFAC593381988D107B2919GVXPR06MB8972eurp_ Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable The goal is fast multi-item array append, which is currently not possible, = as `+=3D` and `array_push` operators does something else and `array_merge` = is very slow as the whole array is copied. Currently the fastest approach is to use the foreach equivalent, which requ= ires much more code and two intermediate variables for k/v. For better understanding, I have updated the example codes in https://githu= b.com/php/php-src/issues/10791 but sadly all short codes are slow as array = is copied. Michael ________________________________ From: Micha=B3 Marcin Brzuchalski Sent: Thursday, April 6, 2023 5:01 PM To: Vorisek, Michael Cc: PHP internals Subject: Re: [PHP-DEV] Array spread append czw., 6 kwi 2023, 13:53 u=BFytkownik Vorisek, Michael > napisa=B3: Hi Ilija, * Are integer keys preserved? I'm assuming no, as otherwise it would be the same as `$a + $b`. $arr[...] =3D $arr; should be the same as foreach ($arr as $v) { $arr[] =3D $v; } I'd argue with that because I think the spread operator should be consisten= t with preserve keys strategy used in other places. Cheers, Micha=B3 Marcin Brzuchalski --_000_GVXPR06MB897288CBFAC593381988D107B2919GVXPR06MB8972eurp_--