Массив первого элемента конкретного символа
У меня есть массив с очень разными комбинациями, теперь я хочу получить число / код, который начинается с _
в начале массива. Я пробовал много вещей с usort, но не нашел лучшего решения.
Пример массива:
jhdjfhasjdfh234324
6524kl6j245-68tgh345345
ji43h593408ug8gfsspdkf
_23i490u2458djiofjgoskdgk
4534326jk36hj4j526hkj45t
43u25h6jih245ji3
И вывод:
_23i490u2458djiofjgoskdgk
jhdjfhasjdfh234324
6524kl6j245-68tgh345345
ji43h593408ug8gfsspdkf
4534326jk36hj4j526hkj45t
43u25h6jih245ji3
И не может быть больше кодов, которые начинаются с _
,
Благодарю.
2 ответа
Решение
function aux($a, $b) {
if($a[0] == "_") return -1;
else if($b[0] == "_") return 1;
return ($a < $b) ? -1 : 1;
}
usort($data, "aux");
Как то так должно работать
$f = false;
$data = array_filter($data, function($var) use(&$f) {
if (substr($var, 0, 1) == "_") {
$f = $var;
return false;
}
return true;
});
if ($f) {
array_unshift($data, $f);
}