<?php
$template = ['A', 'B', 'C'];
$myArray = [
new Element('B'),
new Element('C'),
new Element('A'),
];
class Element
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
usort($myArray, function($a, $b) {
return array_search($a) - array_search($b);
});
var_dump($myArray);
Fatal error: Uncaught ArgumentCountError: array_search() expects at least 2 arguments, 1 given in /in/UvEk3:22
Stack trace:
#0 /in/UvEk3(22): array_search(Object(Element))
#1 [internal function]: {closure}(Object(Element), Object(Element))
#2 /in/UvEk3(21): usort(Array, Object(Closure))
#3 {main}
thrown in /in/UvEk3 on line 22
Process exited with code 255.
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28
Fatal error: Uncaught ArgumentCountError: array_search() expects at least 2 arguments, 1 given in /in/UvEk3:22
Stack trace:
#0 /in/UvEk3(22): array_search(Object(Element))
#1 [internal function]: {closure}(Object(Element), Object(Element))
#2 /in/UvEk3(23): usort(Array, Object(Closure))
#3 {main}
thrown in /in/UvEk3 on line 22
Process exited with code 255.
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
array(3) {
[0]=>
object(Element)#1 (1) {
["name"]=>
string(1) "B"
}
[1]=>
object(Element)#2 (1) {
["name"]=>
string(1) "C"
}
[2]=>
object(Element)#3 (1) {
["name"]=>
string(1) "A"
}
}
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
Warning: array_search() expects at least 2 parameters, 1 given in /in/UvEk3 on line 22
array(3) {
[0]=>
object(Element)#3 (1) {
["name"]=>
string(1) "A"
}
[1]=>
object(Element)#2 (1) {
["name"]=>
string(1) "C"
}
[2]=>
object(Element)#1 (1) {
["name"]=>
string(1) "B"
}
}