【问题标题】:How can i take the values from this array我如何从这个数组中获取值
【发布时间】:2015-05-16 13:06:04
【问题描述】:

如何获取 SchoolType、SchoolLocation、DegreeName、StartDate 和 EndDate ?

我试图像这样获取这些价值

foreach ($Edu as $attr)
{
 $attr->SchoolType;
}

但它显示的是空值。

这是我的数组

    Array (
    [@attributes] => Array (
    [SchoolType] => University
    )
    [School] => Array (
    [SchoolName] => Northeastern University
    )
    [SchoolLocation] => Northeastern
    [Degree] => Array (
    [@attributes] => Array (
    [DegreeType] => Graduate/ Undergraduate
    )
    [IsHighestDegee] => True
    [DegreeName] => Bachelor
    [DegreeDate] => Array (
    [0] => Array (
    )
    )
    [DegreeMajor] => Array (
    [Name] => Science
    )
    [EducationDetails] => Science
    [DegreeMeasure] => Array (
    [EducationMeasure] => Array (
    [MeasureSystem] => Array (
    )
    [MeasureValue] => Array (
    [0] => Array (
    )
    )
    )
    )
    [DateofAttendance] => Array (
    [StartDate] => Array (
    [0] => Array (
    )
    )
    [EndDate] => Array (
    [0] => Array (
    )
    )
    )
    [EducationDescription] => Northeastern University, Boston MA Bachelor of Science, Business Administration
    )
    )

请帮我取这个数组中的值。

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    如果 $Edu 是包含你写的数据的数组,代码

    var_dump($Edu['@attributes']['SchoolType']);
    var_dump($Edu['SchoolLocation']);
    var_dump($Edu['Degree']['DegreeName']);
    var_dump($Edu['Degree']['DateofAttendance']['StartDate']);
    var_dump($Edu['Degree']['DateofAttendance']['StartDate'][0]);
    

    给出结果

    string(10) "University"
    string(12) "Northeastern"
    string(8) "Bachelor"
    array(1) { [0]=> array(0) { } }
    array(0) { }
    

    【讨论】:

    • 请问,我该如何在foreach循环中做到这一点
    • 如果 Edu 包含问题中的数据,绝不会,因为 foreach 将给出 [@attributes]、[School]、['SchoolLocation'] 的 yuo 内容......。但是如果该数据是foreach中$attr的var_dump,只需将Edu改为attr,例如$attr['@attributes']['SchoolType']
    • 谢谢,但我只得到'N' :(
    • 嗨,实际上这里是eval.in/366676,它有我的完整数组,我尝试 foreach 循环,因为它有很多像我们一样的数组.. 有一个问题我不能在那里获得正确的详细信息
    • 通过 var_export($arra) 输出;并放在那里
    【解决方案2】:

    您将需要使用索引。试试$attr[0][SchoolType]; 继续为整个数组使用计数器变量。

    循环看起来像这样;

    $i = 0;
    foreach ($Edu as $attr)
    {
     $attr[$i][SchoolType]; // whatever your code has to happen.
    $i++;
    }
    

    【讨论】:

    • 嗨,谢谢,我明白了。你能说我怎么能在foreach循环中做到这一点
    • @StackRaja 我已经更新了答案。如果它有效,请接受它。 :)
    • 嗨,谢谢,...但是,它只给了我结果o
    • 对每个数组执行此操作。对于嵌套数组,以 sizeof(array) 作为计数器限制器开始一个 for 循环。
    • sizeof 方法将为您提供限制器值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多