Re: [RFC] Scan results for array_str_contains
| From: | David CARLIER | Date: | Fri, 04 Sep 2026 18:16:51 +0000 |
| Subject: | Re: [RFC] Scan results for array_str_contains | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-132431@lists.php.net to get a copy of this message | ||
On Fri, 4 Sept 2026 at 19:03, سپهر محمودی <sepehrphpr@gmail.com>
wrote:
>
>
>
> در تاریخ جمعه ۴ سپتامبر ۲۰۲۶، ۲۱:۱۳ David CARLIER
> <devnexen@gmail.com> نوشت:
>>
>> Hi,
>>
>> On Thu, 3 Sept 2026 at 17:21, سپهر محمودی
>> <sepehrphpr@gmail.com> wrote:
>> >
>> > Hey internals,
>> >
>> > Just wanted to follow up with the real-world data I promised for array_str_contains().
>> >
>> > I scanned the top 200 Composer packages (around 21,000 PHP files) to see how people
>> > currently handle array substring searches. Here is what I found (32 matches total):
>> >
>> > - array_filter with str_contains: 8
>> > - array_filter with strpos: 8
>> > - array_filter with stripos: 6
>> > - foreach with str_contains: 6
>> > - array_filter with preg_match: 4
>> >
>> > All these different (and sometimes verbose) approaches can simply be replaced with a
>> > single, clean, and fast native call:
>> > array_str_contains($haystack, $needle)
>> >
>> > I’ve updated the RFC with these findings:
>> > https://wiki.php.net/rfc/array_str_contains
>> >
>> > If you want to check out the script or raw JSON results, I uploaded them here:
>> >
>> > https://gist.github.com/sepehrphpr/d4d371ba682cc43c4f258de94684cc91
>> >
>> > Let me know what you think!
>> >
>> > Cheers,
>> > Sepehr
>> >
>>
>> quick look in the RFC about this
>>
>> "Non-string values in the array are implicitly cast to strings before
>> the check".
>>
>> Is actually the case implementation wise ?
>
>
> --------
>
> Hi David,
>
> Yes, non-string scalar values (like integers or floats) can be cast/treated as strings during
> the search (similar to how some string-matching functions handle scalar inputs), or skipped if not
> convertible.
>
> I will make sure the wording in the RFC clearly explains how non-string values within the array
> are handled.
>
> Best regards,
> Sepehr
>
you probably need to update your test to demonstrate it.