使用php获取json上错过的聊天总数

时间:2017-06-28 11:00:09

标签: php json count

只是想知道如何获得错过的聊天总数。 到目前为止,我希望我已经完成了:

    var json = '{
  "chats": [
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": true
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": false
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": false
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": true
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": true
    }
  ]
}';

    var obj = JSON.parse(json);

    alert(obj.chats.length);

只想显示错过和未错过的聊天总数(true =是 false = no)以及php格式

谢谢你, 问候

3 个答案:

答案 0 :(得分:1)

在PHP中,您可以遍历数据并获得如下计数:

$chats='{
  "chats": [
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": true
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": false
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": false
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": true
    },
    {
      "department_name": "Lesson and Fee Support",
      "id": "1706.2327063.QNoy006lji184",
      "end_timestamp": "2017-06-28T06:16:12Z",
      "referrer_search_terms": "",
      "referrer_search_engine": "",
      "missed": true
    }
  ]}';
$chats=json_decode($chats,true);
$chats=$chats['chats'];
if(!empty($chats))
{
    $missed=0;
    $notMissed=0;
    foreach ($chats as $key => $chat) {
        if($chat['missed']){
            $missed++;
        }else{
            $notMissed++;           
        }
    }
    echo '<p><strong>Missed:</strong>'.$missed.'</p>';
    echo '<p><strong>Missed:</strong>'.$notMissed.'</p>';
}

但我建议你从数据库级别获取计数,这样就可以避免在PHP或JavaScript中循环。

答案 1 :(得分:0)

var obj = JSON.parse(json);
len =obj.chats.length;
missedyes=0;
missedno=0;
for(i=0;i<len;i++)
{
val =obj.chats[i].missed;
if(val==true){missedyes+=1}else{missedno+=1}
}
missyes将会错过聊天计数而不会被忽视聊天将被忽略不计数

答案 2 :(得分:-1)

您可以使用SQL查询来获取计数 -

SELECT (SELECT COUNT(*) FROM chat WHERE missed = true) as unread_count, (SELECT COUNT(*) FROM chat WHERE missed = false) as read_count FROM chats LIMIT 0,1;