2013-02-11 2 views
-2

У меня есть массив с очень разными комбинациями, теперь я хочу получить номер/код, который начинается с _ в начале массива. Я много пробовал с помощью usort, но не нашел лучшего решения.Array атрибут первого элемента

Пример массива:

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

И выход:

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

И, не может быть больше кодов, который начинается с _.

Спасибо.

ответ

1
function aux($a, $b) { 
    if($a[0] == "_") return -1; 
    else if($b[0] == "_") return 1; 
    return ($a < $b) ? -1 : 1; 
} 

usort($data, "aux"); 
+0

Это сработало, спасибо. – Wouter0100

0

Что-то, как это должно работать

$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); 
} 
+0

Не пробовал, но, кажется, хорошо. В любом случае спасибо! – Wouter0100