PHP如何无需循环 对数组内stdClass对象的指定属性执行json_encode
无循环实现方案
可以使用PHP内置的array_map高阶函数完成需求,不需要手动编写循环逻辑,且只会保留你指定的key2、key3两个属性,不受对象其他未知属性影响:
// PHP 7.4+ 支持箭头函数的版本写法 $jsonResult = json_encode(array_map(fn($obj) => [ 'key2' => $obj->key2, 'key3' => $obj->key3 ], $myArray));
如果需要保留输出结果为对象格式而非数组格式,可调整回调返回值:
$jsonResult = json_encode(array_map(fn($obj) => (object)[ 'key2' => $obj->key2, 'key3' => $obj->key3 ], $myArray));
低版本PHP(7.4以下)可替换为匿名函数写法:
$jsonResult = json_encode(array_map(function($obj) { return [ 'key2' => $obj->key2, 'key3' => $obj->key3 ]; }, $myArray));
内容的提问来源于stack exchange,提问作者gambit11550
相关产品推荐
相关产品推荐

