jsonq icon indicating copy to clipboard operation
jsonq copied to clipboard

foreach() to retrieve records only working once

Open talkingpixels opened this issue 5 years ago • 1 comments

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?

talkingpixels avatar Mar 26 '19 22:03 talkingpixels

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')

marccreus avatar Sep 13 '19 12:09 marccreus