如何使用foreach获取数组中的特定字段

时间:2015-05-19 04:14:05

标签: php arrays multidimensional-array

我想参加学校类型,姓名,地点,详情,学位,教育详情,开始和结束日期等字段

如何使用foreach循环执行此操作?

这是我的数组。

    Array (
    [0] => SimpleXMLElement Object (
    [@attributes] => Array (
    [SchoolType] => UnSpecified
    )
    [School] => SimpleXMLElement Object (
    [SchoolName] => School of
    )
    [SchoolLocation] => SimpleXMLElement Object (
    )
    [Degree] => SimpleXMLElement Object (
    [@attributes] => Array (
    [DegreeType] =>
    )
    [IsHighestDegee] => True
    [DegreeName] => SimpleXMLElement Object (
    )
    [DegreeDate] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [DegreeMajor] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [EducationDetails] => SimpleXMLElement Object (
    )
    [DegreeMeasure] => SimpleXMLElement Object (
    [EducationMeasure] => SimpleXMLElement Object (
    [MeasureSystem] => SimpleXMLElement Object (
    )
    [MeasureValue] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    )
    )
    [DateofAttendance] => SimpleXMLElement Object (
    [StartDate] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [EndDate] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    )
    [EducationDescription] => Editor - School of Business Management Students\' newsletter
    )
    )
    [1] => SimpleXMLElement Object (
    [@attributes] => Array (
    [SchoolType] => UnSpecified
    )
    [School] => SimpleXMLElement Object (
    [SchoolName] => Nanyang Polytechnic
    )
    [SchoolLocation] => Nanyang
    [Degree] => SimpleXMLElement Object (
    [@attributes] => Array (
    [DegreeType] => Certificate Courses
    )
    [IsHighestDegee] => False
    [DegreeName] => SimpleXMLElement Object (
    )
    [DegreeDate] => SimpleXMLElement Object (
    [AnyDate] => 1/1/1999
    )
    [DegreeMajor] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [EducationDetails] => Engineering
    [DegreeMeasure] => SimpleXMLElement Object (
    [EducationMeasure] => SimpleXMLElement Object (
    [MeasureSystem] => SimpleXMLElement Object (
    )
    [MeasureValue] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    )
    )
    [DateofAttendance] => SimpleXMLElement Object (
    [StartDate] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [EndDate] => SimpleXMLElement Object (
    [AnyDate] => 1/1/1999
    )
    )
    [EducationDescription] => Secretary - Nanyang Polytechnic Students\' Union Participated in inter-diploma debate (
    1999
    ) - preliminary and semi-final
    )
    )
    [2] => SimpleXMLElement Object (
    [@attributes] => Array (
    [SchoolType] => UnSpecified
    )
    [School] => SimpleXMLElement Object (
    [SchoolName] => Member of school volleyball team - represented school in National competition
    )
    [SchoolLocation] => SimpleXMLElement Object (
    )
    [Degree] => SimpleXMLElement Object (
    [@attributes] => Array (
    [DegreeType] => Certificate Courses
    )
    [IsHighestDegee] => False
    [DegreeName] => SimpleXMLElement Object (
    )
    [DegreeDate] => SimpleXMLElement Object (
    [AnyDate] => 1/1/1996
    )
    [DegreeMajor] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [EducationDetails] => Engineering
    [DegreeMeasure] => SimpleXMLElement Object (
    [EducationMeasure] => SimpleXMLElement Object (
    [MeasureSystem] => SimpleXMLElement Object (
    )
    [MeasureValue] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    )
    )
    [DateofAttendance] => SimpleXMLElement Object (
    [StartDate] => SimpleXMLElement Object (
    [0] => SimpleXMLElement Object (
    )
    )
    [EndDate] => SimpleXMLElement Object (
    [AnyDate] => 1/1/1996
    )
    )
    [EducationDescription] => Patrol Leader - Girl Guides Member of school volleyball team - represented school in National competition - clinched 2nd prize in 1996
    )
    )
    )

这是var_export

array (
0 => SimpleXMLElement::__set_state(
array(
\'@attributes\' => array (
\'SchoolType\' => \'UnSpecified\',
), \'School\' => SimpleXMLElement::__set_state(
array(
\'SchoolName\' => \'School of\',
)
), \'SchoolLocation\' => SimpleXMLElement::__set_state(
array(
)
), \'Degree\' => SimpleXMLElement::__set_state(
array(
\'@attributes\' => array (
\'DegreeType\' => \'\',
), \'IsHighestDegee\' => \'True\', \'DegreeName\' => SimpleXMLElement::__set_state(
array(
)
), \'DegreeDate\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)
), \'DegreeMajor\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
), )), \'EducationDetails\' => SimpleXMLElement::__set_state(
array(
)), \'DegreeMeasure\' => SimpleXMLElement::__set_state(
array(
\'EducationMeasure\' => SimpleXMLElement::__set_state(
array(
\'MeasureSystem\' => SimpleXMLElement::__set_state(
array(
)
), \'MeasureValue\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)), )), )), \'DateofAttendance\' => SimpleXMLElement::__set_state(
array(
\'StartDate\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)), \'EndDate\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
), )), )), \'EducationDescription\' => \'Editor - School of Business Management Students\\\' newsletter\', )), )), 1 => SimpleXMLElement::__set_state(
array(
\'@attributes\' => array (
\'SchoolType\' => \'UnSpecified\',
), \'School\' => SimpleXMLElement::__set_state(
array(
\'SchoolName\' => \'Nanyang Polytechnic\',
)
), \'SchoolLocation\' => \'Nanyang\', \'Degree\' => SimpleXMLElement::__set_state(
array(
\'@attributes\' => array (
\'DegreeType\' => \'Certificate Courses\',
), \'IsHighestDegee\' => \'False\', \'DegreeName\' => SimpleXMLElement::__set_state(
array(
)
), \'DegreeDate\' => SimpleXMLElement::__set_state(
array(
\'AnyDate\' => \'1/1/1999\',
)), \'DegreeMajor\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
), )), \'EducationDetails\' => \'Engineering\', \'DegreeMeasure\' => SimpleXMLElement::__set_state(
array(
\'EducationMeasure\' => SimpleXMLElement::__set_state(
array(
\'MeasureSystem\' => SimpleXMLElement::__set_state(
array(
)
), \'MeasureValue\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)), )), )), \'DateofAttendance\' => SimpleXMLElement::__set_state(
array(
\'StartDate\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)), \'EndDate\' => SimpleXMLElement::__set_state(
array(
\'AnyDate\' => \'1/1/1999\',
)), )), \'EducationDescription\' => \'Secretary - Nanyang Polytechnic Students\\\' Union Participated in inter-diploma debate (
1999
) - preliminary and semi-final\', )), )), 2 => SimpleXMLElement::__set_state(
array(
\'@attributes\' => array (
\'SchoolType\' => \'UnSpecified\',
), \'School\' => SimpleXMLElement::__set_state(
array(
\'SchoolName\' => \'Member of school volleyball team - represented school in National competition\',
)
), \'SchoolLocation\' => SimpleXMLElement::__set_state(
array(
)), \'Degree\' => SimpleXMLElement::__set_state(
array(
\'@attributes\' => array (
\'DegreeType\' => \'Certificate Courses\',
), \'IsHighestDegee\' => \'False\', \'DegreeName\' => SimpleXMLElement::__set_state(
array(
)
), \'DegreeDate\' => SimpleXMLElement::__set_state(
array(
\'AnyDate\' => \'1/1/1996\',
)), \'DegreeMajor\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
), )), \'EducationDetails\' => \'Engineering\', \'DegreeMeasure\' => SimpleXMLElement::__set_state(
array(
\'EducationMeasure\' => SimpleXMLElement::__set_state(
array(
\'MeasureSystem\' => SimpleXMLElement::__set_state(
array(
)
), \'MeasureValue\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)), )), )), \'DateofAttendance\' => SimpleXMLElement::__set_state(
array(
\'StartDate\' => SimpleXMLElement::__set_state(
array(
0 => SimpleXMLElement::__set_state(
array(
)
),
)), \'EndDate\' => SimpleXMLElement::__set_state(
array(
\'AnyDate\' => \'1/1/1996\',
)), )), \'EducationDescription\' => \'Patrol Leader - Girl Guides Member of school volleyball team - represented school in National competition - clinched 2nd prize in 1996\', )), )), )

这是this问题

的后续内容

2 个答案:

答案 0 :(得分:2)

查看SimpleXMLElement::attributes

我认为你可以获得像

这样的元素
$url = 'http://recruitplushrxmlapidemo.onlineresumeparser.com/hrxml/153Melanie%20R.%20Mather%20Mills.xml';

$sxml = simplexml_load_file($url);

foreach($sxml->StructuredXMLResume->EducationHistory->SchoolOrInstitution as $key => $value){

    echo 'SchoolType --> '.$value->attributes()['SchoolType'];        
    echo "<br />";
    echo 'SchoolName --> '.$value->School->SchoolName;
    echo "<br />";
    echo 'SchoolLocation --> '.$value->SchoolLocation;
    echo "<br />";
    echo 'DegreeMajor --> '.$value->Degree->DegreeMajor[0];
    echo "<br />";
    echo 'EducationDetails --> '.$value->Degree->EducationDetails;
    echo "<br />";
    echo 'StartDate --> '.$value->Degree->DateofAttendance->StartDate[0];
    echo "<br />";
    echo 'EndDate --> '.$value->Degree->DateofAttendance->EndDate->AnyDate;
    echo "<br /><br />";

}

答案 1 :(得分:1)

我是个白痴,它没有点击那个XML。好的,所以你的阵列似乎是简历中的一系列学校/机构,对吗?只需按照XML层次结构访问您关注的每个节点。

foreach ($nodes as $node) {
    echo "Type: " . $node->attributes()['SchoolType'] . "\n";
    echo "Name: " . $node->School->SchoolName . "\n";
    echo "Location: " . $node->SchoolLocation . "\n";
    echo "Degree name: " . $node->Degree->DegreeName . "\n";
    // etc
}