2013-10-26 2 views
5

Ho cercato così, ma non riuscivo a trovare uno script PHP è answer.My ricevere qualche JSON per posta http che assomiglia a questo:PHP conteggio JSON serie

{ 
"task": [ 
{ 
    "task_id": "3", 
    "task_due": "Oct 26 11:25", 
    "task_completed": "FALSE", 
    "task_desc": "fff", 
    "task_time": "20131026_112531", 
    "task_name": "fff" 
}, 
{ 
    "task_id": "2", 
    "task_due": "Oct 26 11:25", 
    "task_completed": "FALSE", 
    "task_desc": "rff", 
    "task_time": "20131026_112522", 
    "task_name": "xff" 
}, 
{ 
    "task_id": "1", 
    "task_due": "Oct 26 11:25", 
    "task_completed": "FALSE", 
    "task_desc": "fggg", 
    "task_time": "20131026_112516", 
    "task_name": "ff" 
    } 
]} 

Come si può vedere, ci sono 3 articoli , ma quando ho trasformarlo in un oggetto array PHP e contare gli oggetti, sto tornato 1, quando dovrebbe essere 3, ecco il mio codice PHP:

$json_tasks = $_POST["json_array"]; 
$task_array = json_decode($json_tasks,true); 
echo count($task_array); 

e echo count stampe out '1' non e ' 3' .

risposta

11

Prova echo count($task_array['task']);

In generale, se vi chiedete quale sia la struttura del valore di una variabile $var è, fare un vantaggio

<pre><?php var_export($var, true); ?></pre> 

di questa funzione su alternative come serialize e print_r è, che stampa codice PHP (ed è quindi leggibile da chiunque comprenda PHP (che è probabile se si programma in PHP)). Lo svantaggio di var_export è che non può gestire strutture circolari (ad esempio se $a->b == $a), ma nessuno dei due può JSON.

+0

dispiace il mio errore, un altro promblem quando theres solo 1 compito, non 3, si dice che ci sono 6 compiti – AndroidDev

+0

Stai interpretando la struttura dei dati in modo non corretto. Hai provato il mio suggerimento su 'var_export'? – Oswald

2

Bene i 3 articoli sono in 1 voce "task" così, avete un array di nome compito e i 3 elementi sono in esso

provare

echo count($task_array['task']); 

EDIT:

si prega di utilizzare il seguente codice per stampare la matrice nel modello corretto

echo '<pre>'; 
print_r($task_array['task']); 
exit(); 
+0

Scusate il mio errore, un altro promblem quando c'è solo 1 compito, non 3, si dice che ci sono 6 compiti – AndroidDev

+0

@ Coder101 si prega di controllare la modifica –

+1

@ Coder101 bene, basta guardare l'array, c'è un array ** task ** in che ci sono 3 matrici e poi in ognuna di esse 3 matrici ci sono 6 elementi –

2
$task_array = json_decode($json_tasks); 
count($task_array->task); 

EX: 3

Da Taiwan

1

provare questo codice, qui posso in grado di contare il numero di oggetti con valore specifico

ecco il mio contenuto del file data.json

{"likes":[ 
    {"user_id":1,"time":"12:04pm"}, 
    {"user_id":2,"time":"02:04pm"}, 
    {"user_id":67,"time":"11:04pm"}, 
    {"user_id":1,"time":"12:04pm"} 
]} 

ecco il codice php

<?php 
$jsonData = file_get_contents("data.json"); 
$data = json_decode($jsonData,true); 
$total = 0; 
foreach ($data["likes"] as $value) { 
    if($value["user_id"]==1){ 
     $total = $total+1; 
    } 
} 
echo $total; 
?> 

uscita sarà

2