PHP-数组搜索未按预期工作-工作正常,然后失败
因此,我有以下几点:PHP-数组搜索未按预期工作-工作正常,然后失败,php,Php,因此,我有以下几点: echo array_search('Resolved at Tier 1', array_column($getHighLevelOverviewPeriodsArray, 'status')); print_r($getHighLevelOverviewPeriodsArray); if (!array_search('Resolved at Tier 1', array_column($getHighLevelOverviewPeriodsA
echo array_search('Resolved at Tier 1', array_column($getHighLevelOverviewPeriodsArray, 'status'));
print_r($getHighLevelOverviewPeriodsArray);
if (!array_search('Resolved at Tier 1', array_column($getHighLevelOverviewPeriodsArray, 'status'))) {
$resolved = array('status' => 'Resolved at Tier 1', 'amount' => 0);
array_splice($getHighLevelOverviewPeriodsArray, 0, 0, array($resolved));
}
print_r($getHighLevelOverviewPeriodsArray);
回声吐出一个正确的零。首先,它确实存在。但是,第二部分运行(if语句)并执行array\u splice
。打印输出如下所示
即使它在那里,它在执行什么
我有完全相同的代码用于第2层,字符对字符(除了第2层),这与预期的效果一样
Array
(
[0] => Array
(
[status] => Resolved at Tier 1
[amount] => 10
)
[1] => Array
(
[status] => Resolved at Tier 2
[amount] => 7
)
[2] => Array
(
[status] => Resolved Total
[amount] => 17
)
[3] => Array
(
[status] => Phone Calls
[amount] => 0
)
)
Array
(
[0] => Array
(
[status] => Resolved at Tier 1
[amount] => 0
)
[1] => Array
(
[status] => Resolved at Tier 1
[amount] => 10
)
[2] => Array
(
[status] => Resolved at Tier 2
[amount] => 7
)
[3] => Array
(
[status] => Resolved Total
[amount] => 17
)
[4] => Array
(
[status] => Phone Calls
[amount] => 0
)
)
阅读手册中的警告。0==类型转换后为false。你需要:
if (false !== array_search ...
而不是:
if (!array_search...
编辑添加:第2层工作正常,因为大于零的索引是“真实的”。既然$resolved已经是一个数组,为什么在拼接语句的末尾有array($resolved)而不是$resolved?我看到必须这样做,但不管怎样,搜索仍然不起作用。您是否收到任何错误?你检查日志了吗?没有错误。日志中没有任何内容。if(false==数组)的可能重复项\u搜索似乎已对其进行排序