我必须创建一个专门的方法来处理作者姓名的显示方式。我需要做的是匹配作者角色,并向具有相同角色的任何二级作者($ author2)显示主要作者($ author)。
在下面的例子中,应该返回的作者数组是[" Smith"," Jones"]。
输入数组示例:
$author = "Smith";
$author2 = ["Jones", "Berry", "Mitchell"];
$auth_role = "";
$auth2_role = [ "", "editor", "editor"];
目前,该方法仅输出主作者($ author),但不输出任何其他作者($ author2)。当我将print语句放入代码时,它显示它在第一个return语句处返回。
到目前为止我所写的方法如下。我认为代码正在跳过或覆盖foreach循环。
/**
* Get the authors for display.
*
* @return array
*/
public function getAuthors()
{
$leader = $this->marcRecord->getLeader();
$bibLvl = $leader[7];
$over_title = $this->fields['item_title_txt'];
$author2 = $this->getSecondaryAuthors();
$author = $this->getPrimaryAuthor();
$auth_role = $this->getPrimaryAuthorRole();
$auth2_role = $this->getSecondaryAuthorRoles();
$authdisplay = [$author];
if (!empty($over_title) && ($bibLvl=='a')) {
$i=0;
foreach ($auth2_role as $field){
if ($field == $auth_role) {
$authdisplay = [$field];
}
$i++;
}
return $authdisplay;
}
return $authdisplay;
}
您是否有任何关于如何使方法正确显示作者列表的提示(例如,在上面的示例数组中,那将是[" Smith"," Jones&# 34;])?谢谢。
答案 0 :(得分:0)
您需要用以下内容替换if:
var SomeAwesomeComponent = React.createClass({
getInitialState: function(){
return {
text: 'Test'
}
},
componentDidMount: function(){
var self = this;
setInterval(function(){
self.setState({
text: 'Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello '
})
},2000)
},
render: function() {
var cardStyle = {
transition: '1s'
}
return (
<div>
<Card>
<CardText transitionEnabled={true} style={{cardStyle}}>
{this.state.text}
</CardText>
</Card>
</div>
);
}
结果:
if (!empty($over_title) && ($bibLvl=='a')) {
foreach ($auth2_role as $key=>$field){
if ($field == $auth_role) {
$authdisplay[] = $author2[$key];
}
}
return $authdisplay;
}