foreach ($packagetray as $tray) {
$bIds = explode(',', $tray['box_ids']);
$tmp = array_intersect($bIds, $boxsId);
if (!empty($tmp)) {
$tray['box_ids']=$bIds;
$skuTrays[] = $tray;
}
}
foreach ($packagetray as $tray) {
$bIds = explode(',', $tray['box_ids']);
$tmp = array_intersect($bIds, $boxsId);
if (!empty($tmp)) {
$skuTrays[] = $tray;
}
}
两段代码,唯一的差别是这一句 $tray['box_ids']=$bIds; $tray['box_ids']本来就是字符串,第一段报错,第二段不报错。explode() expects parameter 2 to be string, array given
按理说 foreach 会更新$tray,每次取出来的是新的 tray,这时候应该不会有问题的,但是第一段就是报错