Как продвигать определенные элементы в начале массива в PHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как продвигать определенные элементы в начале массива в PHP

Сообщение Anonymous »

Если определенные элементы содержатся в массиве, я хочу, чтобы они переместились в начало. Поэтому я попытался использовать Uksort с обратным вызовом, но, возможно, я делаю это неправильно, потому что это не работает. < /P>

Я попробовал это, это метод моего помощника < /code > класс, но он не работает. < /p>

$good_elements = array('sku','name','type','category','larping');
$test_array = array('sku','name','asdf','bad_stuff','larping','kwoto');
$results = helper::arrayPromoteElementsIfExist($test_array,$good_elements,false);

public static function arrayPromoteElementsIfExist($test_array,$promote_elements,$use_keys = false) {
foreach(array('test_array','promote_elements') as $arg) {
if(!is_array($$arg)) {
debug::add('errors',__FILE__,__LINE__,__METHOD__,'Must be array names',$$arg);
return false;
}
}
if(!$use_keys) {
$test_array = array_flip($test_array); // compare keys
$promote_elements = array_flip($promote_elements); // compare keys
}
uksort($test_array,function($a,$b) use($promote_elements) {
$value1 = intval(in_array($a, $promote_elements));
$value2 = intval(in_array($b,$promote_elements));
return $value1 - $value2;
});
if(!$use_keys) {
$test_array = array_flip($test_array);
}
return $test_array;
}


Подробнее здесь: https://stackoverflow.com/questions/188 ... ray-in-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»