返さなければならないオブジェクトがありますが、返す前に返される前の操作を実行する必要があります。
オブジェクトの形式は次のとおりです。
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]
私は何をする必要がありますか:
'Adverts' カウントが 1 でない 'dataset' 配列のすべての部分を削除し、'Adverts' 配列サイズが 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 を配列としてキャストすることはできません。
簡単なメモ: 配列から削除する必要はありません。最終的には、Adverts カウントが 3 のオブジェクトを除いて同じオブジェクトが必要です。したがって、これには、Adverts カウントを持たない新しい配列へのコピーが含まれる可能性があります。 <> の 1。