数组第一个项目特定的字符


Array first item specific character

我有一个有很多不同组合的数组,现在,我想得到数组开头以_开头的数字/代码。我用usort做了很多尝试,但都没有找到最好的解决方案。

示例阵列:

jhdjfhasjdfh234324
6524kl6j245-68tgh345345
ji43h593408ug8gfsspdkf
_23i490u2458djiofjgoskdgk
4534326jk36hj4j526hkj45t
43u25h6jih245ji3

输出:

_23i490u2458djiofjgoskdgk
jhdjfhasjdfh234324
6524kl6j245-68tgh345345
ji43h593408ug8gfsspdkf
4534326jk36hj4j526hkj45t
43u25h6jih245ji3

而且,再也没有以_开头的代码了。

谢谢。

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);
}