As you can see in the example array_push
or array_unshift
save [data] with the last value.
<?php
$filters = json_decode(strtolower('{"groupOp":"AND","rules":[{"field":"codigo","op":"cn","data":"ampolla 213"},{"field":"codigo","op":"cn","data":"hola rzD"}]}'));
if (count(explode(' ', preg_replace("/\s+/", " ", $filters->rules[0]->data)))>1) {
$tmp_array = $filters->rules[0];
array_shift($filters->rules);
unset($tmp_array->data);
foreach(explode(' ', preg_replace("/\s+/", " ", $filters->rules[0]->data)) as &$value) {
$tmp_array->data = $value;
print_r($tmp_array);
array_unshift($filters->rules, $tmp_array);
}
print_r($filters);
}
Output
stdClass Object
(
[field] => codigo
[op] => cn
[data] => hola
)
stdClass Object
(
[field] => codigo
[op] => cn
[data] => rzd
)
stdClass Object
(
[groupop] => and
[rules] => Array
(
[0] => stdClass Object
(
[field] => codigo
[op] => cn
[data] => rzd
)
[1] => stdClass Object
(
[field] => codigo
[op] => cn
[data] => rzd
)