我有一个与目录中图像名称相对应的字符串数组。
以下是一个例子:
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" }
答案 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