我有两个数组,一个可以有1个元素,其他数组可以有2个元素。所以主要的问题是我得到了“Undefined offset”错误我认为它是因为我的数组元素不同,file_data循环变为两次而其他只有单个元素一起出现,为什么我得到这个错误。我该如何解决这个问题?
第一个数组是字幕变量
none
我的第二个数组是file_data
array (size=1)
0 => string 'Some string' (length=9)
array (size=2)
'userfile_1' => string './uploads/images/131/Untitled.jpg' (length=33)
'userfile_15' => string './uploads/images/131/unnamed.jpg' (length=32)
在我的结果中我得到了
$i = 0;
foreach ($file_data as $file)
{
$image['hotel_id'] = $last_id;
$image['image'] = $file;
$image['caption'] = $caption[$i++];
var_dump($image);
}
答案 0 :(得分:1)
由于此
,您收到未定义的偏移量错误$image['caption'] = $caption[$i++];
避免错误:
if(!empty($caption[$i])){
$image['caption'] = $caption[$i];
} else {
$image['caption'] = "";
}
$i++;
答案 1 :(得分:0)
可能更正确吗?
foreach ($file_data as $file)
{
$image[] =['hotel_id' => $last_id,
'image' => $file,
'caption' => $caption];
}
var_dump($image);
或替换行:
$image['caption'] = isset($caption[$i++])?$caption[$i++]:"";
答案 2 :(得分:0)
$i = 0;
foreach ($file_data as $file)
{
$image['hotel_id'] = $last_id;
$image['image'] = $file;
if($caption[$i++]!='')
$image['caption'] = $caption[$i++];
else
$image['caption'] = '';
var_dump($image);
}