我有一个需要返回的对象,但是我需要在返回之前执行一些预回退操作。PHP遍历多维(数组)对象
对象的格式如下:
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为阵..任何帮助将不胜感激!
只是一个简短的提示:它不需要从数组中删除,我只是最终需要相同的对象,而没有那些广告计数为3的相同的对象。因此,这可能涉及复制到一个新的数组没有那些广告数量为<> 1.
我喜欢'&$ data' +'unset'的使用 –
@Alex LOL ..在foreach中的一个常见错误是缺少的& – JvdBerg
我可能没有很好地澄清,我正在计数(Object)PaginationHelper - >(数组) - >(对象)AdvertSet - >(数组)广告 - 然后如果广告的计数为1,保留它,否则删除'数据集' – Jimbo