3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array ( 'relation' => 'AND', 'key1' => 'Demo', 'value1' => 'demo', 'compare1' => '=', 'type1' => 'NUMERIC', 'key2' => 'test', 'value2' => 'test', 'compare2' => '=', 'type2' => 'NUMERIC', 'key3' => 'test', 'compare3' => '=', 'type3' => 'NUMERIC', 'key4' => 'test', 'value4' => 'test', 'key5' => 'test', 'value5' => 'test', 'compare5' => '=', 'type5' => 'NUMERIC', ); $new = array_splice($arr, 0,1); foreach($arr as $k => $v){ preg_match("/(.*?)(\d+)/", $k, $m); $new[$m[2]-1][$m[1]] = $v; } var_export($new);
Output for 7.1.25 - 7.1.28, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
array ( 'relation' => 'AND', 0 => array ( 'key' => 'Demo', 'value' => 'demo', 'compare' => '=', 'type' => 'NUMERIC', ), 1 => array ( 'key' => 'test', 'value' => 'test', 'compare' => '=', 'type' => 'NUMERIC', ), 2 => array ( 'key' => 'test', 'compare' => '=', 'type' => 'NUMERIC', ), 3 => array ( 'key' => 'test', 'value' => 'test', ), 4 => array ( 'key' => 'test', 'value' => 'test', 'compare' => '=', 'type' => 'NUMERIC', ), )

preferences:
149.15 ms | 404 KiB | 163 Q