249 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			249 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
return [
 | 
						|
    // Third argument = 0
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        2, // Input
 | 
						|
        [2, 3, 4, 3],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        2, // Input
 | 
						|
        [1, 0, 4, 3],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        2, // Input
 | 
						|
        [2, 0, 0, 3],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2, // Expected
 | 
						|
        0, // Input
 | 
						|
        [2, 0, 0, 3],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
 | 
						|
    // Third argument = 1
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        2, // Input
 | 
						|
        [2, 3, 4, 3],
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2, // Expected
 | 
						|
        2, // Input
 | 
						|
        [2, 0, 4, 3],
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        2, // Input
 | 
						|
        [2, 0, 0, 3],
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        4, // Expected
 | 
						|
        4, // Input
 | 
						|
        [2, 0, 0, 3],
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
 | 
						|
    // Third argument = -1
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        2, // Input
 | 
						|
        [2, 0, 0, 3],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        4, // Expected
 | 
						|
        2, // Input
 | 
						|
        [3, 3, 4, 5],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        5, // Input
 | 
						|
        [8, 4, 3, 2],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        6, // Input
 | 
						|
        [3, 5, 6, 8],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        6, // Input
 | 
						|
        [8, 5, 4, 2],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        4, // Input
 | 
						|
        [5, 8, 4, 2],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2, // Expected
 | 
						|
        4, // Input
 | 
						|
        [8, 8, 3, 2],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
 | 
						|
    // 0s are causing errors, because things like 0 == 'x' is true. Thanks PHP!
 | 
						|
    [
 | 
						|
        3,
 | 
						|
        'x',
 | 
						|
        [[0], [0], ['x'], ['x'], ['x']],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2,
 | 
						|
        'a',
 | 
						|
        [false, 'a', 1],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        0,
 | 
						|
        ['x', true, false],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        true,
 | 
						|
        ['a', 'b', 'c'],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        true,
 | 
						|
        [0, 1, 2],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        true,
 | 
						|
        [0, 1, 2],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        true,
 | 
						|
        [0, 1, 2],
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        true,
 | 
						|
        [true, true, true],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        true,
 | 
						|
        [true, true, true],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        true,
 | 
						|
        [true, true, true],
 | 
						|
        1,
 | 
						|
    ],
 | 
						|
    // lookup stops when value < searched one
 | 
						|
    [
 | 
						|
        5, // Expected
 | 
						|
        6,
 | 
						|
        [true, false, 'a', 'z', 222222, 2, 99999999],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    // if element of same data type met and it is < than searched one #N/A - no further processing
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        6,
 | 
						|
        [true, false, 'a', 'z', 2, 888],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        6,
 | 
						|
        ['6'],
 | 
						|
        -1,
 | 
						|
    ],
 | 
						|
    // expression match
 | 
						|
    [
 | 
						|
        2, // Expected
 | 
						|
        'a?b',
 | 
						|
        ['a', 'abb', 'axc'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        'a*',
 | 
						|
        ['aAAAAAAA', 'as', 'az'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        '1*11*1',
 | 
						|
        ['abc', 'efh', '1a11b1'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        '1*11*1',
 | 
						|
        ['abc', 'efh', '1a11b1'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2, // Expected
 | 
						|
        'a*~*c',
 | 
						|
        ['aAAAAA', 'a123456*c', 'az'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        'a*123*b',
 | 
						|
        ['aAAAAA', 'a123456*c', 'a99999123b'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        1, // Expected
 | 
						|
        '*',
 | 
						|
        ['aAAAAA', 'a111123456*c', 'qq'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        2, // Expected
 | 
						|
        '?',
 | 
						|
        ['aAAAAA', 'a', 'a99999123b'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        '#N/A', // Expected
 | 
						|
        '?',
 | 
						|
        [1, 22, 333],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        '???',
 | 
						|
        [1, 22, 'aaa'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
    [
 | 
						|
        3, // Expected
 | 
						|
        '*',
 | 
						|
        [1, 22, 'aaa'],
 | 
						|
        0,
 | 
						|
    ],
 | 
						|
];
 |