这是一个复杂的问题......:
EDIT !!
我试过了......:
但它不起作用......:
if ($citation->MeshHeadingList)
{//b
foreach ($citation->MeshHeadingList->MeshHeading as $mesh_heading)
{//c
$mesh_tag = $mesh_heading->DescriptorName;
//If Qualifier name excists:
if (isset($mesh_heading->QualifierName))
{//d
if (!array_key_exists($mesh_tag, $mesh_tags_array))
{//e
$mesh_tags_array[$mesh_tag][] = 0;
foreach ($mesh_heading->QualifierName as $qualifier_name)
{//f
if (!array_key_exists($qualifier_name, $mesh_tags_array)
{//g
$mesh_tags_array[][$qualifiername] = 0;
}//g
else
{//g
$mesh_tags_array[][$qualifiername] += 1;
}//g
}//f
if ($mesh_heading->DescriptorName->attributes() == "Y")
{//f
$major = 3;
}//f
else
{//f
$major = 0;
}//f
$mesh_tags_array[$mesh_tag][] += $position_rank + $date_rank + $major;
}//e
else
{//e
if ($mesh_heading->DescriptorName->attributes() == "Y")
{//f
$major = 3;
}//f
else
{//f
$major = 0;
}//f
if (!array_key_exists($mesh_tag, $mesh_tags_array))
{//f
$mesh_tags_array[$mesh_tag][] = 0;
}//f
else
{//f
$mesh_tags_array[$mesh_tag][] += $position_rank + $date_rank + $major;
}//f
}//e
}//d
}//c
}//b
else
{//b
echo "mesheading is missing in article " . $i . "<br />";
}//b
这里是xmlobject:
[MeshHeadingList] => SimpleXMLElement Object
(
[MeshHeading] => Array
(
[0] => SimpleXMLElement Object
(
[DescriptorName] => Acoustic Stimulation
[QualifierName] => methods
)
[1] => SimpleXMLElement Object
(
[DescriptorName] => Adult
)
[2] => SimpleXMLElement Object
(
[DescriptorName] => Auditory Perception
[QualifierName] => physiology
)
[3] => SimpleXMLElement Object
(
[DescriptorName] => Electroencephalography
[QualifierName] => methods
)
[4] => SimpleXMLElement Object
(
[DescriptorName] => Event-Related Potentials, P300
[QualifierName] => Array
(
[0] => genetics
[1] => physiology
)
)
[5] => SimpleXMLElement Object
(
[DescriptorName] => Schizotypal Personality Disorder
[QualifierName] => Array
(
[0] => diagnosis
[1] => genetics
[2] => psychology
[3] => clinical physiology
)
)
[MeshHeading] => Array
(
[0] => SimpleXMLElement Object
(
[DescriptorName] => Adolescent
)
[1] => SimpleXMLElement Object
(
[DescriptorName] => Event-Related Potentials, P300
[QualifierName] => Array
(
[0] => genetics
[1] => physiology
[2] => methods
)
)
[2] => SimpleXMLElement Object
(
[DescriptorName] => Attention
)
[3] => SimpleXMLElement Object
(
[DescriptorName] => Female
)
[4] => SimpleXMLElement Object
(
[DescriptorName] => Genetic Predisposition to Disease
[QualifierName] => Array
(
[0] => genetics
[1] => psychology
)
)
[5] => SimpleXMLElement Object
(
[DescriptorName] => Schizotypal Personality Disorder
[QualifierName] => Array
(
[0] => diagnosis
[1] => genetics
[2] => psychology
)
)
我想在以下数组中输出它:
Acoustic Stimulation (1)
-methods (1)
Adult (1)
Auditory Perception (1)
-physiology (1)
Electroencephalography (1)
-methods (1)
Event-Related Potentials, P300 (2)
-genetics (2)
-physiology (2)
-methods (1)
Schizotypal Personality Disorder (2)
-diagnosis (2)
-genetics (2)
-psychology (2)
-clinical physiology (1)
Adolescent (1)
Attention (1)
Female (1)
Genetic Predisposition to Disease (1)
-genetics (1)
-psychology (1)
说明:如果存在Discriptor名称,则它会添加一个值,如果QualifierName存在于同一个DiscriptorName中,它也会向QualifierName添加一个值......
正如您所看到的,必须在第一个“array_key_exists”中检查它,然后在数组中的数组中检查......?
我使用的是一维数组,但这种方法更复杂...... ??
此致 泰斯
答案 0 :(得分:3)
您可以使用isset
。
if (isset($stat[$descriptorName][$qualifierName]))