开发者

array_key_exists in 2D array php

开发者 https://www.devze.com 2023-02-05 18:26 出处:网络
It\'s a complex question...: EDIT!! I tried this...: But it doesn\'t work...: if ($citation->MeshHeadingList)

It's a complex question...:

EDIT!!

I tried this...:

But it doesn't work...:

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

And here the xmlobject:

 [MeshHeadingList] => SimpleXMLElement Object
                            (
                                [MeshHeading] => Array
                                    (
                                        [0] => SimpleXMLElement Object
                                            (
                                                [DescriptorName] => Acoustic Stimulation
                                                [QualifierName] => methods
                                            )

                                        [1] => SimpleXMLElement Object
                                            (
                                                [DescriptorName] => Adult
                                            )

                                        [2] => SimpleXMLElement Object
                                            (
                                                [DescriptorName] => Auditory Perc开发者_JS百科eption
                                                [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 want to output it in the following array:

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: If the Discriptor name exists, it adds a value of one, if the QualifierName exists in the same DiscriptorName it adds a value to the QualifierName too...

As you can see, it must be checked in the first "array_key_exists" and later in the array in the array...?

I got working with a one dimensional array but this is way more complex...??

Regards, Thijs


You can just use isset.

if (isset($stat[$descriptorName][$qualifierName]))
0

精彩评论

暂无评论...
验证码 换一张
取 消