我有这个数组
$arr = array('test1', 'test', 'test3', 'var1', 'var5', 'var');
我希望将数组修剪/排序为这样
$arr = array('test', 'var');
答案 0 :(得分:2)
这个问题有点模糊;听起来像是在问你如何过滤掉不包含数字的元素,而提供的$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 :(得分:1)
对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
)
答案 2 :(得分:1)
$arr = array('test1', 'test', 'test3', 'var1', 'var5', 'var');
$arr = array($arr[1], $arr[5]);
如果项目位置一直移动,可变性的可能性很大,但根据您发布的内容,我认为这是最快的。
答案 3 :(得分:1)
$arr = array_unique(array_map('rtrim',$arr,array_fill(1,count($arr),'0123456789')));