【发布时间】:2016-05-18 21:10:13
【问题描述】:
我无法在建议的问题中找到可以帮助我解决此问题的解决方案。
我有以下代码,它确实有效,但它会引发 PHP 警告:为 foreach() 错误提供的参数无效。
在我的代码中,我将 $author2 中的任何作者添加到 $authdisplay 数组中,这些作者与主要作者 ($auth_role[0]) 具有相同的角色。
我已检查以确保 $author2、$auth2_role、$auth_role 和 $authdisplay 都是数组,并且 $author2 和 $auth2_role 具有相同数量的元素。 ($author 是一个字符串。)
任何解决此问题的提示和帮助将不胜感激。
$author = $this->getPrimaryAuthor();
$author2 = $this->getAuthor2Names();
$auth_role = $this->getPrimaryAuthorsRoles();
$auth2_role = $this->getAuthor2Roles();
$authdisplay[] = $author;
foreach($author2 as $key=>$field) {
if ($auth2_role[$key] == $auth_role[0]) {
$authdisplay[] = $field;
}
}
return $authdisplay;
}
【问题讨论】:
-
你试过
var_dump($author2)吗? -
你也可以只合并两个数组
$author和$author2与array_merge($author, $author2),但在此之前应用array_filter()到$author2。 -
@sevavietl 但
$author不是数组。 -
您的
$author2很可能是null或string,但应该是array -
我知道您说您检查以确保
$author2是一个数组,但您一定是搞错了。这个错误的唯一原因是$author2不是一个数组。