当前位置: 首页 > 面试题库 >

在strpos中使用数组作为指针

况喜
2023-03-14
问题内容

strpos搜索字符串时,如何使用针阵列?例如:

$find_letters = array('a', 'c', 'd');
$string = 'abcdefg';

if(strpos($string, $find_letters) !== false)
{
    echo 'All the letters are found in the string!';
}

因为当使用它时,它不起作用,如果有这样的东西,那会很好


问题答案:

function strposa($haystack, $needles=array(), $offset=0) {
$chr = array();
foreach($needles as $needle) {
$res = strpos($haystack, $needle, $offset);
if ($res !== false) $chr[$needle] = $res;
}
if(empty($chr)) return false;
return min($chr);
}


如何使用:

$string = 'Whis string contains word "cheese" and "tea".';
$array  = array('burger', 'melon', 'cheese', 'milk');

if (strposa($string, $array, 1)) {
    echo 'true';
} else {
    echo 'false';
}

true因为会回来array "cheese"

更新: 改进的代码,发现第一个指针时停止:

function strposa($haystack, $needle, $offset=0) {
    if(!is_array($needle)) $needle = array($needle);
    foreach($needle as $query) {
        if(strpos($haystack, $query, $offset) !== false) return true; // stop on first true result
    }
    return false;
}
$string = 'Whis string contains word "cheese" and "tea".';
$array  = array('burger', 'melon', 'cheese', 'milk');
var_dump(strposa($string, $array)); // will return true, since "cheese" has been found


 类似资料:
  • 本文向大家介绍PHP中使用数组指针函数操作数组示例,包括了PHP中使用数组指针函数操作数组示例的使用技巧和注意事项,需要的朋友参考一下 数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素。默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素。对于数组指针的控制PHP提供了以下几个内建函数可以利用。 ★current():取得目前指针位置的内容资料。 ★key():

  • 问题内容: 为什么这个独立的代码不起作用: 即使变量中包含https,每次也可以打印。 问题答案: 如有疑问,请阅读文档: [strpos]返回大海捞针中第一次出现针的数字位置。 因此,您想尝试更多类似的方法: 因为否则返回一个数字,并且您正在寻找布尔值。

  • 我的团队(包括我自己)是C++的新手。我们新开发的一部分是一个C++函数,它需要与一个以数组为输入的C函数进行接口。为了实现这一点,创建了类似于以下构造: 编译时,这将按照预期工作:它打印数组的内容: 但我觉得这很不合法,或者最多是应该劝阻的事情。 这是合法的C++,即是否保证指向数组引用的指针指向原始数组? 有什么理由可以这样做,而不是直接使用指针,而不是将引用作为中间的引用?

  • 我想发布一个字符串数组,如 到基于 Swagger 的 API。在我的大摇大摆的文件中,我有这些行: 将< code > id 的类型指定为字符串数组的正确方法是什么? 更新: 根据规范,以下应该在我的选项中工作: https://github.com/Yelp/swagger_spec_validator不接受它,并返回一长串错综复杂的错误,这些错误看起来像代码需要一些。

  • 本文向大家介绍在C中使用指针算法的数组总和,包括了在C中使用指针算法的数组总和的使用技巧和注意事项,需要的朋友参考一下 在此程序中,我们需要使用指针算法来查找数组元素的总和。 在这里,我们使用*表示存储在内存地址中的值,并且该地址将保留存储在变量中。因此,“ int * ptr”表示ptr是包含地址的变量,并且地址的内容是整数。 * p表示它是一个指针变量。使用此方法,我们将找出数组元素的总和。

  • 问题内容: 我试图做这样的事情,即在switch语句中使用数组。Java可能吗?如果不是,请说明可能的解决方案。 问题答案: 不 ,您根本不能。 表达式的类型必须是char,byte,short,int,Character,Byte,Short,Integer,String或枚举类型(第8.9节),否则会发生编译时错误。 http://docs.oracle.com/javase/specs/jl