当我需要函数返回具有特定值的键时,我很难理解该函数array_keys如何工作。例如,假设我们有一个这样的数组:
$testArray = array
(
[key1] => value1,
[key2] => value2,
[key3] => 0
)
我对array_keys函数的理解告诉我,在给定数组上调用这个函数是这样的:
array_keys($testArray,"value1")
应该给出这样的回应:
Array
(
[0] => key1
)
但实际上这就是我得到的:
Array
(
[0] => key1
[1] => key3
)
我认为这很奇怪。进一步的测试表明,如果我在数组中将数字零作为值,这种事情总是会发生。我搜索它的值并不重要,它总是返回以零作为值的键。此外,仅当 array_keys 的第三个参数(称为 strict)设置为 false 时,才会发生这种情况。如果我将该参数设置为 true,则该函数将按预期工作。
我错过了什么还是这是 PHP 中的问题?我使用的是 PHP 版本 5.5.9。
比较string
时,它们将转换为数字。
尝试使用 -
array_keys($testArray,"value1", true);
传递第三个参数true
将使其与===
进行比较。
strict:确定在搜索过程中是否应使用严格比较 (===)。
array_keys