помогите с сортировкой массива php - PullRequest
0 голосов
/ 19 июля 2011

У меня есть этот массив

$arr = array('test1', 'test', 'test3', 'var1', 'var5', 'var');

и я хочу обрезать / отсортировать массив так:

$arr = array('test', 'var');

Ответы [ 4 ]

2 голосов
/ 19 июля 2011

Этот вопрос немного расплывчат;для меня это звучит так, как будто вы спрашиваете, как отфильтровать элементы, которые не содержат цифру, и предоставленный $arr является лишь примеромВ этом случае вы можете сделать следующее:

$arr = array('test1', 'test', 'test3', 'var1', 'var5', 'var');

function filter($element)
{
  if (ctype_alpha($element)) return $element;
}

$output = array_filter($arr, 'filter');

Это также будет работать, если ваш массив изменится.Если вам нужно отсортировать результаты по алфавиту, то:

natcasesort($output);

Я могу ошибаться;в этом случае это немного перебор.

1 голос
/ 19 июля 2011
$arr = array_unique(array_map('rtrim',$arr,array_fill(1,count($arr),'0123456789')));
1 голос
/ 19 июля 2011
 $arr = array('test1', 'test', 'test3', 'var1', 'var5', 'var');
 $arr = array($arr[1], $arr[5]);

Существует много возможностей для изменчивости, если позиции предметов когда-либо перемещаются, но, исходя из того, что вы опубликовали, я думаю, что это быстрее всего.

1 голос
/ 19 июля 2011

Пара вызовов к array_splice() выполнят это, однако они не могут быть вложенными, потому что ожидает ссылку на массив и не примет вывод вызова функции в качестве входного параметра.

$arr = array('test1', 'test', 'test3', 'var1', 'var5', 'var');
array_splice($arr, 0, 1);
array_splice($arr, 1, 3);

print_r($arr);
Array
(
    [0] => test
    [1] => var
)
...