Concernant le premier extrait, j'aurais tendance à :
– privilégier la clause la plus courte avant le else pour la lisibilité.
if ( b ) {
short();
}
else {
long();
long();
long();
long();
long();
long();
long();
long();
}
– éviter l'imbrication des fonctions comme dans ton
if (array_reduce (array_keys ($input), $ascend, 0) !== count ($input)) (résultat de
array_keys(...), résultat de
count($input) ?
– utiliser, peut-être, un seul return, mais ça dépend un peu des cas, je ne suis pas totalement inflexible sur ce point

– couper les lignes des opérateurs ternaires, mais ton code étant très court, ça reste lisible. Comme pour le point précédent, c'est généralement ce que je fais, sauf si c'est ridicule. Effectivement, avec un null, ça se tient.
(et sinon j'ai du mal avec cette espace entre les noms de fonctions et les parenthèses, mais bon

)