php重新排序字符串数组

时间:2016-02-12 16:22:02

标签: php arrays

我有一个与目录中图像名称相对应的字符串数组。

以下是一个例子:

    array(3) { [0]=> string(5) "3.png" [1]=> string(5) "2.jpg" [2]=> string(6) "4.jpeg" }

我如何重新排序该数组,以便扩展前的数字增加,如下例所示:

    array(3) { [0]=> string(5) "2.jpg" [1]=> string(5) "3.png"  [2]=> string(6) "4.jpeg" }

3 个答案:

答案 0 :(得分:1)

使用sort功能:

$array = array(
    '2.png',
    '4.png',
    '1.png',
);

sort($array);

print_r($array);

<强>输出:

Array ( [0] => 1.png [1] => 2.png [2] => 4.png )

有关详细信息,请查看:PHP Array Sorting

答案 1 :(得分:1)

这是操作数组中任何现有元素的位置(索引)的简洁函数:

$sampleArray = array( 'a', 'b', 'c', 'd', 'e' );
print_r($sampleArray);
print_r(arrayMoveElement('c',$sampleArray,1));
exit;

function arrayMoveElement($element, &$array, $position=0){
    $index = array_search($element, $array);      // Search for the element in the array and returns its current index
    if($index == false){                        // Make sure the element is present in the array
        return false;
    }
    else{
        unset($array[$index]);                      // Removes the element from the array
        $array = array_values($array);                  // Re-sorts the indexes
        if(!is_int($position)){return false;}           // Position of the element that should be inserted must be a valid integer (index)
        array_splice($array, $position, 0, $element);   // Inserts the element to the desired position (index) starting from 0 

        return $array;
    }
}// END function arrayMoveElementFirst($element, &$array){

输出:

数组([0] =&gt; a [1] =&gt; b [2] =&gt; c [3] =&gt; d [4] =&gt; e)

数组([0] =&gt; a [1] =&gt; c [2] =&gt; b [3] =&gt; d [4] =&gt; e)

请注意,position参数是可选的,如果省略,该函数只是将元素移动到数组的开头。此外,它可以是负整数,在这种情况下,元素的位置(索引)从其末端计算。

有一个验证可以确保元素存在于数组中,并且新位置是作为整数值提供的。

有关详细信息,请参阅代码注释。

答案 2 :(得分:0)

使用sort()或asort();

<?php
    $fruits = array("lemon", "orange", "banana", "apple");
    sort($fruits);
    foreach ($fruits as $key => $val) {
        echo "fruits[" . $key . "] = " . $val . "\n";
    }
?>

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

您可以在此处找到更多信息:http://php.net/manual/en/array.sorting.php