- var_dump: documentation ( source)
- uasort: documentation ( source)
<?php
const REQUIRED = 1;
const OPTIONAL = 2;
const IS_ARRAY = 4;
$args = [
'a' => [IS_ARRAY],
'b' => [OPTIONAL],
'c' => [REQUIRED],
'd' => [REQUIRED]
];
uasort(
$args,
function ($a, $b) {
if ($a[0] & IS_ARRAY === IS_ARRAY) {
return ($b[0] & IS_ARRAY === IS_ARRAY) ? 0 : 1;
}
if ($b[0] & IS_ARRAY === IS_ARRAY) {
return ($a[0] & IS_ARRAY === IS_ARRAY) ? 0 : -1;
}
if ($a[0] & OPTIONAL === OPTIONAL) {
if ($b[0] & IS_ARRAY === IS_ARRAY) {
return 1;
}
return ($b[0] & OPTIONAL === OPTIONAL) ? 0 : -1;
}
if ($b[0] & OPTIONAL === OPTIONAL) {
if ($a[0] & IS_ARRAY === IS_ARRAY) {
return -1;
}
return ($a[0] & OPTIONAL === OPTIONAL) ? 0 : 1;
}
return 0;
}
);
var_dump($args);