<?php
$myWondersArray = array (
0 =>
(object) array(
'currentUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 3 - Helping Mom (Part 1/3)',
'currentUnitPart' => 'wonderskills/starter_book_2/unit_3_helping_mom/part_1/',
),
1 =>
(object) array(
'currentUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 3 - Helping Mom (Part 2/3)',
'currentUnitPart' => 'wonderskills/starter_book_2/unit_3_helping_mom/part_2/',
),
2 =>
(object) array(
'currentUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 3 - Helping Mom (Part 3/3)',
'currentUnitPart' => 'wonderskills/starter_book_2/unit_3_helping_mom/part_3/',
),
3 =>
(object) array(
'previousUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 2 - Sid\'s New Neighbors (Part 1/3)',
'previousUnitPart' => 'wonderskills/starter_book_2/unit_2_sids_new_neighbors/part_1/',
),
4 =>
(object) array(
'previousUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 2 - Sid\'s New Neighbors (Part 2/3)',
'previousUnitPart' => 'wonderskills/starter_book_2/unit_2_sids_new_neighbors/part_2/',
),
5 =>
(object) array(
'previousUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 2 - Sid\'s New Neighbors (Part 3/3)',
'previousUnitPart' => 'wonderskills/starter_book_2/unit_2_sids_new_neighbors/part_3/',
),
6 =>
(object) array(
'nextUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 4 - Food from the Garden (Part 1/3)',
'nextUnitPart' => 'wonderskills/starter_book_2/unit_4_food_from_the_garden/part_1/',
),
7 =>
(object) array(
'nextUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 4 - Food from the Garden (Part 2/3)',
'nextUnitPart' => 'wonderskills/starter_book_2/unit_4_food_from_the_garden/part_2/',
),
8 =>
(object) array(
'nextUnitDisplay' => 'WonderSkills: Starter Book 2, Unit 4 - Food from the Garden (Part 3/3)',
'nextUnitPart' => 'wonderskills/starter_book_2/unit_4_food_from_the_garden/part_3/',
),
);
$priorities = array_flip(['prev', 'curr', 'next']);
array_multisort(
array_map(fn($obj) => $priorities[substr(key((array) $obj), 0, 4)] ?? PHP_INT_MAX, $myWondersArray),
$myWondersArray
);
var_export($myWondersArray);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XSqHP
function name: (null)
number of ops: 37
compiled vars: !0 = $myWondersArray, !1 = $priorities
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
6 0 E > CAST 8 ~2 <array>
1 INIT_ARRAY ~3 ~2, 0
11 2 CAST 8 ~4 <array>
3 ADD_ARRAY_ELEMENT ~3 ~4, 1
16 4 CAST 8 ~5 <array>
5 ADD_ARRAY_ELEMENT ~3 ~5, 2
21 6 CAST 8 ~6 <array>
7 ADD_ARRAY_ELEMENT ~3 ~6, 3
26 8 CAST 8 ~7 <array>
9 ADD_ARRAY_ELEMENT ~3 ~7, 4
31 10 CAST 8 ~8 <array>
11 ADD_ARRAY_ELEMENT ~3 ~8, 5
36 12 CAST 8 ~9 <array>
13 ADD_ARRAY_ELEMENT ~3 ~9, 6
41 14 CAST 8 ~10 <array>
15 ADD_ARRAY_ELEMENT ~3 ~10, 7
46 16 CAST 8 ~11 <array>
17 ADD_ARRAY_ELEMENT ~3 ~11, 8
3 18 ASSIGN !0, ~3
51 19 INIT_FCALL 'array_flip'
20 SEND_VAL <array>
21 DO_ICALL $13
22 ASSIGN !1, $13
52 23 INIT_FCALL 'array_multisort'
53 24 INIT_FCALL 'array_map'
25 DECLARE_LAMBDA_FUNCTION ~15 [0]
26 BIND_LEXICAL ~15, !1
27 SEND_VAL ~15
28 SEND_VAR !0
29 DO_ICALL $16
30 SEND_VAL $16
54 31 SEND_REF !0
52 32 DO_ICALL
56 33 INIT_FCALL 'var_export'
34 SEND_VAR !0
35 DO_ICALL
36 > RETURN 1
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/XSqHP
function name: {closure}
number of ops: 16
compiled vars: !0 = $obj, !1 = $priorities
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
53 0 E > RECV !0
1 BIND_STATIC !1
2 INIT_FCALL 'substr'
3 INIT_FCALL 'key'
4 CAST 7 ~2 !0
5 SEND_VAL ~2
6 DO_ICALL $3
7 SEND_VAR $3
8 SEND_VAL 0
9 SEND_VAL 4
10 DO_ICALL $4
11 FETCH_DIM_IS ~5 !1, $4
12 COALESCE ~6 ~5
13 QM_ASSIGN ~6 9223372036854775807
14 > RETURN ~6
15* > RETURN null
End of Dynamic Function 0
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
137.53 ms | 1008 KiB | 19 Q