array_diff在drupal中给出了Array to String转换错误

时间:2013-12-20 02:06:31

标签: php arrays drupal-7 array-difference

我遇到了一个来自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行)。

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

array_diff在数组中找到数组时会抛出通知错误。请参阅comment by Michiel Thalen

我可以假设您运行的是PHP 5.4或更高版本。您可以通过检查sandbox中的array_diff语句(您可以在那里切换php版本)自己查看。

Drupal forums

中也有讨论

作为quickfix我建议:

$query = @array_diff($params, array('f' => array()));

如果你打算在深度数组中使用array_diff函数,那么就有很多 网上的解决方案,包括官方的php.net资源。