Reputation: 61
Hi Guys can anyone tell me how to remove the data from the json object on the base of condition
I have this data
[
{
"username": "7291991451",
"uid": "mfwUrskyhzVvzS16pS_a",
"name": "Abhishek B",
"status": "Active",
"is_busy": true,
"duty_day_bits": "1111111",
"duty_start_time": null,
"duty_end_time": null,
"vehicle": null,
"vehicle_type": null,
"todays_mileage": 2244,
"yesterdays_mileage": 30498,
"created_at": " 3/05/2016 5:14:12PM",
"merchant_address": null,
"merchant_id": null
},
{
"username": "7291991462",
"uid": "G1knzKyuKoZK78CZySyA",
"name": "Akash Gupta",
"status": "Active",
"is_busy": false,
"duty_day_bits": "1111111",
"duty_start_time": null,
"duty_end_time": null,
"vehicle": null,
"vehicle_type": null,
"todays_mileage": 0,
"yesterdays_mileage": 0,
"created_at": "18/05/2016 1:16:19PM",
"merchant_address": null,
"merchant_id": null
},
{
"username": "7291991456",
"uid": "ndHsmz-BvyXfjv42MTyd",
"name": "Ankur Sagar",
"status": "Archived",
"is_busy": false,
"duty_day_bits": "1111111",
"duty_start_time": null,
"duty_end_time": null,
"vehicle": null,
"vehicle_type": null,
"todays_mileage": 0,
"yesterdays_mileage": 0,
"created_at": " 3/05/2016 5:36:00PM",
"merchant_address": null,
"merchant_id": null
},
{
"username": "7503710039",
"uid": "j-w2jxx14s6GgF_YkcFP",
"name": "Annu Gupta",
"status": "Archived",
"is_busy": false,
"duty_day_bits": "1111111",
"duty_start_time": null,
"duty_end_time": null,
"vehicle": null,
"vehicle_type": null,
"todays_mileage": 0,
"yesterdays_mileage": 0,
"created_at": " 2/09/2016 12:59:13PM",
"merchant_address": null,
"merchant_id": null
},
{
"username": "9599380369",
"uid": "KarAFisqeRpcr_xtEhEB",
"name": "Arun Kumar",
"status": "Active",
"is_busy": true,
"duty_day_bits": "1111111",
"duty_start_time": null,
"duty_end_time": null,
"vehicle": null,
"vehicle_type": null,
"todays_mileage": 0,
"yesterdays_mileage": 0,
"created_at": " 5/05/2016 1:30:33PM",
"merchant_address": null,
"merchant_id": null
}]
but i want remove the whole data of that guy whose status is Archived. So can any one tell me how can i do this.
Upvotes: 0
Views: 731
Reputation: 71
you can use given code, it is working properly:-
$users = json_decode($json, true);
$count=count($users);
for($i=0; $i<$count; $i++)
{
if($users->status=="Archived")
{
print_r($users);
}
}
Upvotes: -1
Reputation: 28911
One easy way to do this is to use array_filter
.
You'll need to first convert your json to an array:
$users = json_decode($json, true);
Now use filter the array of users, remove those with a status of Archived:
$active = array_filter($users, function($user) {
return $user['status'] != 'Archived';
});
Now $active
will be an array of users that did not have a status of Archived.
If you need the results back in json:
$json = json_encode($active);
Here's a working example: https://3v4l.org/5KMaC
Upvotes: 5