可以使用PHP的array_search()函数来搜索值本身就是数组的情况吗?
P粉798343415
P粉798343415 2023-07-19 23:47:04
0
1
531

我有一个包含静态数组的类,它的键是字符串,值是数组。如果存在特定的数组值,我想获取它的键。

我以为使用array_search()函数的代码可以实现这个功能,但它无法找到该值,而是打印出false。我以为"strict"参数可能会有所不同,但它似乎没有起作用。我做错了什么吗?编写搜索代码的最佳方式是什么?

$ cat foo.php  array('kind' => 'Facility', 'bitnum' => 5), 'Driving' => array('kind' => 'Facility', 'bitnum' => 6), 'Trails' => array('kind' => 'Facility', 'bitnum' => 7), ); public static function bar($kind, $bitnum) { $search = array_search(array('kind' => $kind, 'bitnum' => $bitnum), self::$name_to_bitnum, $strict = false); // $search = array_search(self::$name_to_bitnum['Driving'], self::$name_to_bitnum, $strict = false); return $search; } } $foo = new foo(); echo var_dump($foo->bar('Driving', 6)); ?> $ php foo.php C:xampp1826htdocsOSH0foo.php:21: bool(false)

我注意到,如果我取消注释掉的那行代码,并使用我要查找的数组元素的值,通过对数组进行索引,那么它就能成功并打印出字符串(7) "Driving"。这对我来说似乎不太对。

P粉798343415
P粉798343415

全部回复 (1)
P粉614840363

正如评论中指出的那样,我的测试用例在调用bar()时传递了'Driving',而实际上应该传递'Facility'。现在我只需要回到原来的代码中看看为什么传递了错误的值。非常尴尬,抱歉给您带来困扰。

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!