Bu ... karmaşık bir soru:
EDIT!
Ben bu çalıştı ...:
Ama çalışmıyor ...:
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
Ve burada 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
)
)
i şu dizi çıktı bunu istiyorum:
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)
Explantion: Discriptor isim varsa, o QualifierName aynı DiscriptorName var eğer çok QualifierName bir değer katıyor, tek bir değer katıyor ...
Gördüğünüz gibi, o ... sonra dizideki dizideki ilk "array_key_exists" kontrol ve olmalı?
Ben tek boyutlu bir dizi çalışma var ama bu şekilde daha karmaşık ...?
Regards, Thijs