我有一个数组,我试图用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;
}
答案 0 :(得分:2)
在内部foreach中,您正在循环$key
将其更改为$m
此外,您的数组的第一个值不是数组,即["company_id"]=> string(3) "159"
是一个字符串(159),因此它会给出错误。所以在内部foreach之前检查数组if(is_array($m)){
。
以下是代码:
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"
}
}
尝试循环生成错误的字符串值