我有一个需要返回的对象,但是在返回它之前我需要执行一些预返回操作。
该对象具有以下格式:
object(PaginationHelper)[3]
public 'current_page' => int 1
public 'items_per_page' => int 10
public 'dataset' =>
array (size=10)
0 =>
object(AdvertSet)[4]
public 'Keywords' => string '' (length=0)
protected 'Adverts' =>
array (size=3) // SIZE = 3 SO REMOVE THIS FROM 'dataset' ARRAY
...
public 'LiveStatus' => boolean false
1 =>
object(AdvertSet)[5]
public 'Keywords' => string '' (length=0)
protected 'Adverts' =>
array (size=1) // SIZE = 1 SO KEEP THIS IN 'dataset' ARRAY
...
public 'LiveStatus' => boolean false
etc etc ....
[End Object]
我需要做什么:
删除“数据集”数组中“广告”计数不为 1 的所有部分,从而仅保留“广告”数组大小为 1 的数据集。保留它是要返回的对象这一事实.
我已经尝试过多维递归函数来解决这个问题,但是它是一个对象而不是数组这一事实正在取得进展,我不确定我是否能够从一个对象转换为一个数组并返回再次没有弄乱对象的内部结构。
有人能帮忙吗?这是我到目前为止通过 foreach 得到的结果......
foreach($results as $key => $value) {
if($key == 'dataset') {
// value is right array to check count
foreach($value as $k => $v) {
echo $v;
}
}
}
它不起作用,但这是我目前正在研究的方法。
我也尝试过类似的东西:
if(count($results->dataset->(Array)AdvertSet->Adverts == 1) { }
但我不能将 AdvertSet 转换为 Array.. 任何帮助将不胜感激!
只是一个简短的说明:它不必从数组中删除,我最终只需要相同的对象,而不需要那些广告计数为 3 的对象。所以这可能涉及复制到没有广告计数的新数组<> 1。