不同数量的PHP数组(未定义的偏移量)

不同数量的PHP数组(未定义的偏移量),php,arrays,Php,Arrays,我有两个数组,其中一个可以包含示例1元素,另一个数组可以包含2个元素。所以主要的问题是我得到了“未定义的偏移量”错误,我想这是因为我的数组元素不同,文件的数据循环两次,另一次只有一个元素,所以我得到了这个错误。我如何解决这个问题 第一个数组位于caption变量中 array (size=1) 0 => string 'Some string' (length=9) 我的第二个数组是文件\ U数据 array (size=2) 'userfile_1' => string

我有两个数组,其中一个可以包含示例1元素,另一个数组可以包含2个元素。所以主要的问题是我得到了“未定义的偏移量”错误,我想这是因为我的数组元素不同,文件的数据循环两次,另一次只有一个元素,所以我得到了这个错误。我如何解决这个问题

第一个数组位于caption变量中

array (size=1)
  0 => string 'Some string' (length=9)
我的第二个数组是文件\ U数据

array (size=2)
  'userfile_1' => string './uploads/images/131/Untitled.jpg' (length=33)
  'userfile_15' => string './uploads/images/131/unnamed.jpg' (length=32)
在我的成绩中我得到了

array (size=3)
  'hotel_id' => int 132
  'image' => string './uploads/images/132/Untitled.jpg' (length=33)
   'caption' => string 'Some string' (length=9)

 // and here i got this error: Message: Undefined offset: 1


array (size=3)
  'hotel_id' => int 132
  'image' => string './uploads/images/132/unnamed.jpg' (length=32)
  'caption' => null

这可能更正确吗

foreach ($file_data as $file)
{
    $image[] =['hotel_id' => $last_id,
               'image'    => $file,
               'caption'  => $caption];
}
var_dump($image);
或更换线路:

$image['caption']  = isset($caption[$i++])?$caption[$i++]:"";

由于此原因,您会得到一个未定义的偏移量错误

$image['caption']  = $caption[$i++];
要避免此错误,请执行以下操作:

if(!empty($caption[$i])){
   $image['caption']  = $caption[$i];
} else {
   $image['caption']  = "";
}
$i++;
if(!empty($caption[$i])){
   $image['caption']  = $caption[$i];
} else {
   $image['caption']  = "";
}
$i++;
$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);
}