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