php多维foreach循环

时间:2013-03-08 09:59:03

标签: php multidimensional-array

我有一个数组,我试图用foreach循环它,但我得到了

  

内循环上为foreach()提供的参数无效。

我不确定我的错误。我尝试过使用$key

这是数组:

array(3) { ["company_id"]=> string(3) "159" 
    [0]=> array(9) { 
        ["company_id"]=> string(3) "159" 
        ["employee_id"]=> string(3) "544" 
        ["pay_week1"]=> string(1) "0" } 
    [1]=> array(9) { 
        ["company_id"]=> string(3) "159" 
        ["employee_id"]=> string(3) "545"  } } 

我的循环:

foreach ($this->request->data['MonthlyReturn'] as $key=>$m) // Cycle through each record

{
    foreach ($key as $empl)

    {
        $employee = $empl['employee_id'];
        print '<pre>';
        print_r ($employee);
        exit;
    }

3 个答案:

答案 0 :(得分:2)

  1. 在内部foreach中,您正在循环$key将其更改为$m

  2. 此外,您的数组的第一个值不是数组,即["company_id"]=> string(3) "159"是一个字符串(159),因此它会给出错误。所以在内部foreach之前检查数组if(is_array($m)){

  3. 以下是代码:

             foreach ($this->request->data['MonthlyReturn'] as $key=>$m){
                  if(is_array($m)){
                      echo $m['employee_id'];
                  }
                  else{
                       echo $m;
                  }
             } 
    

答案 1 :(得分:1)

更改此

foreach ($key as $empl)  // $key is array key

foreach ($m as $empl)   // $m is your array value

答案 2 :(得分:0)

您的数组无法使用该代码。它需要一个多级数组,但它并不完全 第一个深度

上有一个字符串值
array(3) {
        ["company_id"]=> string(3) "159" <--- problem
        [0]=> array(9) { 
            ["company_id"]=> string(3) "159" 
            ["employee_id"]=> string(3) "544" 
            ["pay_week1"]=> string(1) "0" 
        } 
        [1]=> array(9) { 
            ["company_id"]=> string(3) "159" 
            ["employee_id"]=> string(3) "545"  
        } 
    } 

尝试循环生成错误的字符串值