我需要什么
array o / p
Array
(
[ID] => 70
[MM_USER_PROFILE_ID] => 1
[FOS_USER_ID] => 84
[TYPE] => ALERT
[FILE_ID] => 157
[PRIORITY] => Medium
[TITLE] => test csv
[DESCRIPTION] => Resource id #390
[IS_ACTIVE] => Y
[CREATED_AT] => 2017-03-15 11:24:28
[UPDATED_AT] =>
[CREATED_BY] => 84
[UPDATED_BY] =>
[LEVEL_ID] =>
[USER_ID] => 84
[LOG_ID] =>
)
php code
$temp = array();
$selectQ = "SELECT COUNT(*) as new_if_count ";
$total_count = $this->container->get('db_core_function_services')->runRawSql($selectQ);
foreach($notification_result as $key =>$value)
{
//solution 1 i tried json_encode
$temp['all_notifications']=json_encode($value);
}
print_r($tmp) o/p false.
//solution 2 i tried
$encoders = array(new JsonEncoder());
$normalizers = array(new GetSetMethodNormalizer());
$serializer = new Serializer($normalizers, $encoders);
$response = new Response($serializer->serialize($temp, 'json'));
$response->headers->set('Content-Type', 'application/json');
return $response;
错误
An unexpected value could not be normalized: NULL
因为我用谷歌搜索我有问题是解析数组中的空值。
请建议
解决方案我发现['description']是创建问题的blob内容。
适用于我的代码
foreach($notification_result as $key =>$value)
{
if(array_key_exists('DESCRIPTION', $value)){
$blob = $value['DESCRIPTION'];
$value['DESCRIPTION'] = stream_get_contents($blob);
}
$temp['all_notifications']=$value;
}
$temp_count=$total_count[0];
$data=array_merge($temp_count,$temp);
答案 0 :(得分:1)
foreach($notification_result as $key =>$value) {
//solution 1 i tried json_encode
//if (!empty($value)) //uncomment if need cut empty variables
$array .= $temp['all_notifications'] = array($key =>$value);
}
$json = json_encode ($array);
echo $json;
答案 1 :(得分:0)
你必须首先初始化这是一个数组。只需在foreach循环之前添加这一行来尝试它
$temp = array();