【问题标题】:php associative array_search odd behaviourphp关联array_search奇怪的行为
【发布时间】:2025-12-06 18:35:01
【问题描述】:

所以这让我现在很紧张
我有一个从另一个数组填充的关联数组:

foreach ($possible_unavailable as $p) {
    $aux[] = array('date' => $p['date'], 'status' => -1);
}
var_dump($aux);

然后我执行以下操作:

foreach ($aux as $pu) {
   var_dump($pu['date']);
   var_dump(array_search($pu['date'], $aux));
}

这是输出:

array(2) {
  [0]=>
  array(2) {
    ["date"]=>
    string(10) "2014-09-01"
    ["status"]=>
    int(-1)
  }
  [1]=>
  array(2) {
    ["date"]=>
    string(10) "2014-09-05"
    ["status"]=>
    int(-1)
  }
}
string(10) "2014-09-01"
bool(false)
string(10) "2014-09-05"
bool(false)


为什么“array_search($pu['date'], $aux)”没有返回 true?

【问题讨论】:

  • 我的数组不是多维的,它只是一个具有字符串值的关联数组。
  • @dan 是的,它是一个数组数组
  • 您有 一个 嵌套数组,其中包含 几个 关联数组。
  • 是的,但我的意思是我没有这样的东西: array("date" => array("2014-09-01", "2014-09-02") , "status " => -1),作为可能的重复帖子。

标签: php arrays search associative


【解决方案1】:

如果我理解得很好,您正在尝试在一个充满数组的数组中搜索一个字符串,因此 array_search 正在将一个字符串与这样的数组进行比较:

是 "2014-09-01" 等于 array("date" => "2014-09-01", "status" => -1) ??

显然返回值是假的。

【讨论】:

  • 谢谢...我误解了array_search函数,有点困惑。这解决了它: array_search($pu['date'], $pu)