首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查数组中所有值的前2位

检查数组中所有值的前2位
EN

Stack Overflow用户
提问于 2020-09-19 02:41:02
回答 1查看 28关注 0票数 0

我有一个array_filter回调函数,它检查数字是否在数组中,如下所示:

代码语言:javascript
运行
复制
$code = "22";
$orders = array_filter(
            $orders,
            function ($key) use($code) {
                return (in_array($code, $key['trans']));
            }
        );

但这是在检查trans值是否有一个与22完全匹配的数字,所以它限制了结果。

我想显示所有以$code (22)开头的trans值-如果可能的话,我想忽略使用for循环,因为显示结果需要更长的时间。

我能做些什么呢?

EN

Stack Overflow用户

发布于 2020-09-19 02:55:04

尝试更改:

代码语言:javascript
运行
复制
return (in_array($code, $key['trans']));

代码语言:javascript
运行
复制
return substr( $key['trans'], 0, strlen($code) ) == $code;

如果$key['trans']是数组,那么我们需要迭代它来搜索其中的$code (sandbox example):

代码语言:javascript
运行
复制
return count(array_filter($key['trans'],
  function ($key2) use($code) {
    return substr( $key2, 0, strlen($code) ) == $code;
  })) > 0;

另外,我使用了array_filter作为内部数组,因为这个答案:find beginning of a string inside an array of strings in php

附注:这是我的单行解决方案。正如@waterloomatt在评论中提到的,简单的forarray_filter更快,所以最好创建一个帮助器函数来检查数组内部是否有从你需要的东西开始的东西。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63961168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档