php多维foreach循环
我有一个数组,我试图用foreach循环它,但是我得到了 为内部循环上的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"
$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
到
$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"
}
}
$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的答案。