【问题标题】:How can i get particular fields in the array using foreach如何使用 foreach 获取数组中的特定字段
【发布时间】:2015-05-19 04:14:05
【问题描述】:

我想获取诸如学校类型、名称、位置、详细信息、学位、教育详细信息、开始和结束日期等字段

如何使用 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问题的后续

【问题讨论】:

  • 跟进?它看起来像一个相同的问题?
  • 单数组,多数组,(这里会用到Foreach)
  • 根据您想要触发的内容,在 for each 语句中执行 if(||__||)。
  • @php_purest 你能解释一下代码吗..
  • @StackRaja 我可以,但是如果你甚至不能在你运行的 for each 中写一个 if 语句,你为什么要手动编写代码?

标签: php arrays multidimensional-array


【解决方案1】:

看看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 />";

}

【讨论】:

  • 嗨,谢谢,我得到了 SchoolType,即未指定 .. 你能告诉我如何获得 学校类型、名称、位置、详细信息、学位、教育详细信息、开始和结束日期还有吗?
  • 没什么大不了的,你可以自己做,如果你需要更多帮助,请格式化你的问题
  • 其实我无法在stackoverflow中发布格式化代码,这里是eval示例代码链接eval.in/367010
  • 我试过$key['School']-&gt;SchoolName,但我的朋友越来越空了:(
  • 我不明白这是怎么这么奇怪的格式:S 无论如何,@StackRaja,你看不到如何应用上述内容来获得不同的属性吗?也许尝试将echo $attr['SchoolName']; 添加到该循环中?
【解决方案2】:

我是个白痴,它没有点击那是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
}

【讨论】:

  • 希望... :) 您是如何填充该数组的?您也应该在原始帖子中包含该代码。
  • 哇!!!!太棒了 !!!你是男人 :) 请问如何在这个数组中获取值ResumeParsingStartDate...eval.in/367046 这是数组stackoverflow.com/questions/30022826/…的原帖
  • 好的,我去看看。请接受答案? :)
  • 哦,实际上我将该文件保存为 .xml 并将其转换为数组然后执行它
  • 是的。这个也一样,真的。看看@tiGer 的回答,挺好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 2021-11-09
  • 2019-08-12
  • 2017-08-06
  • 2020-08-29
  • 1970-01-01
  • 2018-06-05
相关资源
最近更新 更多