我有一个数组,我试图用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内部循环
$key
将其更改为$m
-
此外,数组的第一个值不是数组,即
["company_id"]=> string(3) "159"
是字符串(159(,因此它会出错。所以在内部foreach检查数组之前也是CCD_ 5。
这是代码:
foreach ($this->request->data['MonthlyReturn'] as $key=>$m){
if(is_array($m)){
echo $m['employee_id'];
}
else{
echo $m;
}
}
更改此
foreach ($key as $empl) // $key is array key
至
foreach ($m as $empl) // $m is your array value
您的数组无法处理该代码。它需要一个多元素数组,但它并不完全第一个深度上有一个字符串值
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"
}
}
它试图循环通过一个字符串值,这将生成一个错误