php数组循环获取数组

时间:2013-06-05 13:42:01

标签: php arrays loops

我有一个这样的$ date数组:

[1]=> array(11) {
    ["meetingname"]=> string(33) "win2008connectcurrent0423131"
    [0]=> array(3) {
        ["scoid"]=> string(7) "3557012"
        ["datecreated"]=> string(19) "2013-05-23 10:02:39"
        ["numparticipants"]=> string(1) "3"
    }
    [1]=> array(3) {
        ["scoid"]=> string(7) "3557012"
        ["datecreated"]=> string(19) "2013-05-23 14:40:06"
        ["numparticipants"]=> string(1) "3"
    }
}   

foreach($date[0] as $key =>  $meetings){
    print "$key = $meetings\n";////yields scoid = 3557012
}

而且,正如您在上面所看到的,我正在循环遍历各个元素。第一个元素(未编入索引)始终为meetingname;其余的元素都是索引的,并且它们本身包含每个数组中包含三个元素的数组 - 在上面的代码中它们是[0][1]

我需要做的是将$meetings作为包含[0]然后[1]等的数组,具体取决于元素的数量。基本上,打印输出应该是一个数组(我也可以使用var_dump),键/值为[0],但不是它只输出单个键及其值,例如,你可以见上文,scoid=3557012。我将需要$ meetings变量中的所有键/值,例如:

{
    ["scoid"]=> string(7) "3557012"
    ["datecreated"]=> string(19) "2013-05-23 10:02:39"
    ["numparticipants"]=> string(1) "3"
}

如何修复foreach循环?

2 个答案:

答案 0 :(得分:4)

请试试这个。希望它有所帮助。

foreach($date as $key =>  $meetings){
       if($key == "meetingname")
         continue;
       else
         print "$meetings\n";
 }

答案 1 :(得分:1)

您可以创建一个新阵列并将会议添加到该阵列

<?php
$meetings = array();
foreach($date[1] as $key=>$meeting) {
  if (!is_int($key))
    continue;  //only handle numeric keys, incase you ever change the name of the first key 'meetingname'

  $meetings[] = $meeting
}

var_dump($meetings);
?>