nahid / jsonq

A PHP query builder for JSON
Creative Commons Zero v1.0 Universal
872 stars 105 forks source link

foreach() to retrieve records only working once #40

Open talkingpixels opened 5 years ago

talkingpixels commented 5 years ago

Hi, I'm trying to loop through an array of ids and return some corresponding records, something like this...

foreach (['recHg30ki6MeYP40s','recvtmtL2umW0fDzT'] as $attr){
    $item = $items->from('rows')->where('id', '=', $attr)->get();
    print_r($item);
}

It outputs the array correctly in the first loop, but second (or more) loop return nothing and the following warning:

Warning:  array_filter() expects parameter 1 to be array, object given in /Users/.../vendor/nahid/jsonq/src/JsonQueriable.php on line 393

Any thoughts? Could it be something to do with pointers?

marccreus commented 5 years ago

When you use "from" the pointer moves to (in your case) "rows" scope. So when in the second loop you try to do "from" again it's searching for "rows" inside previous "rows". You should use: $items->reset()->from('rows')