我有一個需要返回的對象,但是我需要在返回之前執行一些預回退操作。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