我遇到了一个来自array_diff语句的奇怪错误。声明是:
$query = array_diff($params, array('f' => array()));
var_dump
的{{1}}为$params
这在名为array(1) { ["f"]=> array(0) { } }
的drupal模块中发生,我得到以下错误消息,如下所示
注意:IslandoraSolrResults-> setBreadcrumbs()中的数组到字符串转换(/var/www/drupal/sites/all/modules/islandora_solr_search/includes/results.inc的第427行)。
注意:IslandoraSolrResults-> setBreadcrumbs()中的数组到字符串转换(/var/www/drupal/sites/all/modules/islandora_solr_search/includes/results.inc的第427行)。
有谁知道为什么会这样?
答案 0 :(得分:2)
array_diff在数组中找到数组时会抛出通知错误。请参阅comment by Michiel Thalen
我可以假设您运行的是PHP 5.4或更高版本。您可以通过检查sandbox中的array_diff语句(您可以在那里切换php版本)自己查看。
中也有讨论作为quickfix我建议:
$query = @array_diff($params, array('f' => array()));
如果你打算在深度数组中使用array_diff函数,那么就有很多 网上的解决方案,包括官方的php.net资源。