PHP对象转关联数组异常:task.type无法转为关联数组求助
PHP对象转关联数组:修复
task.type未转换问题 - 问题:将PHP对象转为关联数组时,
task.type未能被转换为数组结构,仍保持对象形式。 - 递归转换方案(深度处理所有嵌套对象,包括私有属性):
function objectToArray($obj) { if (is_object($obj)) { $obj = (array)$obj; } if (is_array($obj)) { $result = []; foreach ($obj as $key => $value) { // 移除私有属性的类名前缀(如\0ClassName\0property) $cleanKey = preg_replace('/^\x00.*\x00/', '', $key); $result[$cleanKey] = objectToArray($value); } return $result; } return $obj; } // 使用方式 $convertedArray = objectToArray($yourTargetObject);
- 简易JSON序列化方案(需对象支持JSON序列化):
$convertedArray = json_decode(json_encode($yourTargetObject), true);
若task.type对象未实现JsonSerializable接口或正确的__toString方法,此方案可能失效,优先推荐递归转换函数。
内容的提问来源于stack exchange,提问作者Hop Vuong
相关产品推荐
相关产品推荐

