Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php多维foreach循环_Php_Multidimensional Array - Fatal编程技术网

php多维foreach循环

php多维foreach循环,php,multidimensional-array,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"

我有一个数组,我试图用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;
    }
foreach($this->request->data['MonthlyReturn']as$key=>$m)//循环遍历每个记录
{
foreach($key as$emp)
{
$employee=$employee['employee_id'];
打印“”;
foreach ($key as $empl)  // $key is array key
打印(员工); 出口 }
更改此选项

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

改变这个

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

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

  • 另外,数组的第一个值不是数组,即
    [“company_id”]=>string(3)“159”
    是字符串(159),所以它会给出错误。所以在内部foreach检查数组之前,如果(is_array($m)){,也

  • 代码如下:

    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"  
            } 
        } 
    
  • 在内部foreach中,您正在循环
    $key
    将其更改为
    $m

  • 另外,数组的第一个值不是数组,即
    [“company_id”]=>string(3)“159”
    是字符串(159),所以它会给出错误。所以在内部foreach检查数组之前,如果(is_array($m)){
    ,也

  • 代码如下:

    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"  
            } 
        } 
    

    你的数组无法处理该代码。它需要一个多维数组,但它不是完全正确的 第一个深度上有一个字符串值

    数组(3){
    [“company_id”]=>字符串(3)“159”数组(9){
    [“公司id”]=>字符串(3)“159”
    [“员工id”]=>字符串(3)“544”
    [“每周支付”]=>字符串(1)“0”
    } 
    [1] =>数组(9){
    [“公司id”]=>字符串(3)“159”
    [“员工id”]=>字符串(3)“545”
    } 
    } 
    

    它尝试循环遍历字符串值,这将生成一个错误

    您的数组无法处理该代码。它需要一个多维数组,但它不是完全正确的 第一个深度上有一个字符串值

    数组(3){
    [“company_id”]=>字符串(3)“159”数组(9){
    [“公司id”]=>字符串(3)“159”
    [“员工id”]=>字符串(3)“544”
    [“每周支付”]=>字符串(1)“0”
    } 
    [1] =>数组(9){
    [“公司id”]=>字符串(3)“159”
    [“员工id”]=>字符串(3)“545”
    } 
    } 
    


    它尝试循环遍历字符串值,这会生成一个错误

    您对数组值的键进行访问。这是行不通的。对值($m)进行访问时,我会得到与此相同的结果$m@KeithPower:检查我的答案,我解释过了。你可以foreach数组值的键。那是行不通的。foreach值($m)我得到同样的结果$m@KeithPower当前位置查看我的答案我解释过了。我喜欢你复制他可怕的契约的方式。我正在使用cakephp,所以它设置为[“company_id”]=>string(3)如果它是一个字符串,我还能得到值吗?是的。检查我的答案…
    else
    条件
    是数组
    我每次得到的都是$m。我无法控制数组的输出,有没有办法仍然得到员工id?@KeithPower:如果你只想要员工id,你不想要内部循环,请参阅edited Answer我喜欢你复制他可怕的契约的方式我正在使用cakephp,所以它设置为[“company_id”]=>string(3)如果它是一个字符串,我还能得到值吗?是的。检查我的答案…
    else
    条件
    是数组
    我每次得到的都是$m。我无法控制数组的输出,有没有办法仍然得到员工id?@KeithPower:如果你只想要员工id,你不想要内部循环,请参阅edited Answer我得到了和我一样的结果afraid@KeithPower检查prashant的答案,我得到的结果和我一样afraid@KeithPower检查prashant的答案。