如何解决检查数组中所有值的前2位
我有一个array_filter回调函数,用于检查数字是否在数组中,如下所示:
$code = "22";
$orders = array_filter(
$orders,function ($key) use($code) {
return (in_array($code,$key['trans']));
}
);
但这是在检查trans值是否具有与22完全匹配的数字,因此它限制了结果。
我想显示所有以$ code(22)开头的反式值-如果可能的话,我想忽略使用for循环,因为这将花费更长的时间来显示结果。
我该怎么办?
解决方法
尝试更改:
return (in_array($code,$key['trans']));
到
return substr( $key['trans'],strlen($code) ) == $code;
如果$key['trans']
是数组,那么我们需要对其进行迭代以在其中搜索$code
(sandbox example):
return count(array_filter($key['trans'],function ($key2) use($code) {
return substr( $key2,strlen($code) ) == $code;
})) > 0;
P.S。由于以下答案,我将array_filter
用于内部数组:find beginning of a string inside an array of strings in php
P.P.S。这是我的一线解决方案。正如@waterloomatt在评论中提到的,简单的for
比array_filter
快,因此最好创建一个辅助函数来检查数组中是否包含以您需要的内容开头的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。