简体   繁体   中英

how to remove json object on condition

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.

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

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); 
      }
  }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM