[PHP-DEV] [RFC] [Discussion] array_match

On Mon, Aug 24, 2026, at 6:28 AM, سپهر محمودی wrote:

Hi everyone,

Thank you all for the valuable feedback, especially regarding the
complexities of case-insensitive searches and locale dependencies.

Based on the discussions, I have updated the RFC and simplified the
design to avoid those issues. Here are the major changes:

1. The function is now strictly case-sensitive (byte-for-byte
matching). This ensures native support for UTF-8, non-Latin characters,
and emojis without the need for complex decoding.
2. The $ignore_case parameter has been removed. The signature is now
simply: array_str_contain(array $haystack, string $needle): array
3. The implementation target is moved to ext/standard, completely
removing the ICU dependency and improving performance.
4. The target version is set to PHP 8.6.

PHP 8.6 is feature-frozen and not accepting new RFCs. The earliest it could target is PHP 8.7.

You can review the updated RFC here:
https://wiki.php.net/rfc/array_str_contants

I believe this simplified version covers the primary use cases while
eliminating the performance and localization bottlenecks we discussed.

I would appreciate any further thoughts on this updated design.

Best regards,
Sepehr

Also, please remember to bottom post, not top post.

--Larry Garfield

در تاریخ دوشنبه ۲۴ اوت ۲۰۲۶، ۱۸:۳۲ Larry Garfield <larry@garfieldtech.com> نوشت:

On Mon, Aug 24, 2026, at 6:28 AM, سپهر محمودی wrote:

Hi everyone,

Thank you all for the valuable feedback, especially regarding the
complexities of case-insensitive searches and locale dependencies.

Based on the discussions, I have updated the RFC and simplified the
design to avoid those issues. Here are the major changes:

  1. The function is now strictly case-sensitive (byte-for-byte
    matching). This ensures native support for UTF-8, non-Latin characters,
    and emojis without the need for complex decoding.
  2. The $ignore_case parameter has been removed. The signature is now
    simply: array_str_contain(array $haystack, string $needle): array
  3. The implementation target is moved to ext/standard, completely
    removing the ICU dependency and improving performance.
  4. The target version is set to PHP 8.6.

PHP 8.6 is feature-frozen and not accepting new RFCs. The earliest it could target is PHP 8.7.

You can review the updated RFC here:
https://wiki.php.net/rfc/array_str_contants

I believe this simplified version covers the primary use cases while
eliminating the performance and localization bottlenecks we discussed.

I would appreciate any further thoughts on this updated design.

Best regards,
Sepehr

Also, please remember to bottom post, not top post.

–Larry Garfield


Hi Larry,

Thanks for the heads up. I have updated the RFC wiki page to target PHP 8.7.
Also, noted on the bottom-posting rule!

Best regards,
Sepehr