2 回答

TA贡献1868条经验 获得超4个赞
实际上它可以通过许多不同的方式来完成,一种方法就是这样做。
<?php
$object = '{"total":3,"results":[{"id":"4","blog_id":"11","office_name":"Japan","office_status":"inactive"},{"id":"5","blog_id":"11","office_name":"USA","office_status":"active"},{"id":"6","blog_id":"11","office_name":"London","office_status":"inactive"}]}';
$offices = json_decode($object,true);
$new = array_filter($offices['results'], function ($var) {
return ($var['office_status'] == 'active');
});
$expected['total'] = count($new);
$expected['results'] = $new;
echo json_encode($expected);
?>
工作演示: https ://3v4l.org/NXZvQ

TA贡献1752条经验 获得超4个赞
此代码有助于通过状态值获取数据
<?php
$src_ar = '{"total":3,"results":[{"id":"4","blog_id":"11","office_name":"Japan","office_status":"inactive"},{"id":"5","blog_id":"11","office_name":"USA","office_status":"active"},{"id":"6","blog_id":"11","office_name":"London","office_status":"inactive"}]}';
$office_info = json_decode($src_ar,true);
$inactive_array = sort_by_office_status('inactive', $office_info['results']);
print_r($inactive_array);
$active_array = sort_by_office_status('active', $office_info['results']);
print_r($active_array);
function sort_by_office_status( $office_status, $result_array ) {
$return_ar =array();
if( !empty( $result_array ) ) {
foreach( $result_array as $res ) {
if( $res['office_status'] == $office_status ) {
$return_ar['results'][] = $res;
}
}
} else {
$return_ar['results'] = array();
}
$result_count = count( $return_ar['results'] );
$return_ar['total'] = $result_count;
return $return_ar;
}
?>
- 2 回答
- 0 关注
- 81 浏览
添加回答
举报