当前位置: 首页 > 知识库问答 >
问题:

为什么数组_搜索无法识别数组中的第一项?

费辰阳
2023-03-14

我很困惑。为什么array_search会跳过数组中的第一个元素?在数组只返回布尔值的情况下,数组搜索可以返回任何值——这是原因吗?现在这对我来说毫无意义。示例代码如下:

<?php

$array = array("Mac", "NT", "Linux");

if (in_array("Mac", $array)) {
    echo "Ok \n";
} else {
    echo "Not ok \n";
}
// output: Ok

if (array_search("Mac", $array)){
     echo "Ok \n";
} else {
    echo "Not ok \n";
}
// output: Not Ok

$arrayForArraySearch = array('', "Mac", "NT", "Linux"); // add first element

if (array_search("Mac", $arrayForArraySearch)){
     echo "Ok \n";
} else {
    echo "Not ok \n";
}
// output: Ok, but it's no longer first item
?>

共有2个答案

马坚
2023-03-14

正如前面提到的array_search函数的文档一样,返回找到的元素的键。对于if条件,这将导致false,因为元素“Mac”的键是0

更改您的条件以匹配非false=

倪灿
2023-03-14

这是因为array_search正在返回0,这是数组中“Mac”的索引。如果在数组中找不到该项,它将返回false

始终将结果与false进行比较:

if (array_search("Mac", $array) !== false) {
...
}
 类似资料:
  • 问题内容: 假设我们有以下js数组 是否有一个js内置函数或jQuery的一个,使用它可以搜索阵列 AR 的 VAL ? 谢谢 *_ _ _更新 _ _ * _ __** 根据 融合的 反应,我创建了这个原型 问题答案: 您可以创建一个哈希。

  • 我用PHP编写了这个脚本: $lang是en。但是当我调用函数如as

  • 我已经检查并删除了查询的各个部分,试图隔离它来自哪里。经过几个小时和削减每一栏,它仍然在发生。 有人知道雪花诊断查询(像Redshift有)可以告诉我问题发生的特定列吗?

  • 我想在这个json数组中搜索特定的标题。但问题是,我想用正则表达式进行搜索。例如:sb搜索“ad”->函数应该返回前两个json字符串(Adjust和Adn)。 我不知道,现在设置一个javascript函数可以实现这一点。 一些想法?

  • 考虑到这个问题:峰值元素是一个大于相邻元素的元素。 给定一个输入数组,其中num[i]≠ num[i 1],找到一个peak元素并返回其索引。 该数组可以包含多个峰值,在那种情况下将索引返回到任何一个峰值都是精细的。 示例:Array=[1,4,5,7,4,3,1]。峰值指数=3(即7)。 下面的代码非常有效(不仅仅适用于此测试用例): 我不明白它是如何工作的——我以为二进制搜索只是用于排序数组/

  • 我有两个数组: 和。 它们中的第一个是一个键,我想从中获取与该键对应的元素。 在伪代码中: 我知道使用<code>。map()我可以遍历<code>SpecificArray