从多维数组中获取值

时间:2015-03-18 09:10:14

标签: php arrays for-loop multidimensional-array foreach

我从以下代码中获取数组

$classes = $mb->makeNumericArray($data['GetClassesResult']['Classes']['Class']);
$result = $classes;

    echo '<pre>';
        print_r($result);
    echo '</pre>';

,数组是

Array
(
    [0] => Array
        (
            [ClassScheduleID] => 
            [ClassDescription] => Array
                (
                    [Description] => 
                    [Program] => Array
                        (
                            [ScheduleType] => DropIn
                        )
                )

            [Staff] => Array
                (
                    [SortOrder] => 
                }
        )   

     [1] => Array
        (
            [ClassScheduleID] => 
            [ClassDescription] => Array
                (
                    [Description] => 
                    [Program] => Array
                        (
                            [ScheduleType] => DropIn
                        )
                )

            [Staff] => Array
                (
                    [SortOrder] => 
                }
        )   
)   

我尝试从此code at stackoverflow

获取引用的代码
foreach($result as $res)
    {
        $classscheduleid= $res['ClassScheduleID'];
        echo $classscheduleid;

    } 

目前我尝试使用此代码打印ClassScheduleID

但它没有正确获取数据。它错过了[0]处的值,并在数组的其余部分重复了结果。

有人可以告诉我如何从完整数组中获取ClassScheduleID以及DescriptionScheduleTypesortorder吗?

2 个答案:

答案 0 :(得分:0)

您需要遍历内部数组:

foreach($classes as $key => $internal_array){
    $classscheduleid= $internal_array['ClassScheduleID'];
    echo $classscheduleid;
    //again, ClassDescription is also array
    foreach($internal_array['ClassDescription'] as $internal_key => $res){

       echo " $internal_key => $res";//etc

    }
} 

或者递归地执行:

function echo_array($a, $key){
    foreach($a as $key1 => $array1){
        if(!is_array($array1)){
            echo "$key $key1 : $array1<br/>";
        }else{
            echo_array($array1,$key1);
        }
    }
}
echo_array($a,'');

答案 1 :(得分:0)

如果您使用foreach ($result as $row) 那么你将循环遍历所有$ result [0],$ result [1] ...... 然后你回复$result[0]["ClassScheduleID"]在你的情况下,看print_r ($result),是空的,这就是你没有得到结果的原因。