我有一个Shift对象数组,我在PHP中使用它。我需要将这些对象存储在数据库中。我正在开发一个将向数据库添加移位的函数:
$Serialized_S = get_option('MasterShiftString');
$MasterShiftArray = unserialize($Serialized_S);
if(!$MasterShiftArray)
{
echo "MasterShiftArray returns false";
}//end if
echo "Serialized_S:";
print_r($Serialized_S);
echo "<br />MasterShiftString:";
print_r($MasterShiftString);
echo "<br />end<br />";
if(!is_array($MasterShiftArray))
{
echo "MasterShiftArray is not an Array....";
$MasterShiftArray = array($last_monday_from_date => "");
}//end if
else
{
}//end else
$WeekShiftArray = $MasterShiftArray;
array_push($WeekShiftArray, $CurrentShift);
$MasterShiftArray[$last_monday_from_date] = $WeekShiftArray;
$Serialized_s = serialize($MasterShiftArray);
update_option('MasterShiftArray', $Serialized_s);
当然,执行此操作时我得到的是:
last_monday_from_date: 1260777600
MasterShiftArray returns falseSerialized_S:admin,resource,2,1;admin,resource,2,1;admin,resource,2,1;admin,resource,2,1;
MasterShiftString:
end
我在这里做错了什么?我已经尝试过base64编码,但这没有任何帮助。 MasterShiftArray不是数组....
答案 0 :(得分:1)
此:
admin,resource,2,1;admin,resource,2,1;admin,resource,2,1;admin,resource,2,1
看起来什么都不像PHP序列化数组,这是你的问题。 Garbage in =垃圾输出。
假设这是您需要处理的数据格式,请查看使用explode将其分解为';'上的数组,然后在','上爆炸该数组的每个成员。