2011-09-20 79 views
1

的說我有一個數組:PHP推1鍵結束陣列

$k = array('1', 'a', '2', '3'); 

我想推「a」到該陣列的端部。所以它會變成:

$k = array('1', '2', '3', 'a'); 

是否有任何有效的方法來做到這一點?

+0

你想數組按字母順序排序?或者你的一般情況是你總是希望將數組的第二個元素推回到後面? – Alex

回答

0

嘗試PHP的natsort功能:

<?php 

$k = array('1', 'a', '2', '3'); 
var_dump($k); 
natsort($k); 
var_dump($k); 

輸出:

array(4) { 
    [0]=> 
    string(1) "1" 
    [1]=> 
    string(1) "a" 
    [2]=> 
    string(1) "2" 
    [3]=> 
    string(1) "3" 
} 
array(4) { 
    [0]=> 
    string(1) "1" 
    [2]=> 
    string(1) "2" 
    [3]=> 
    string(1) "3" 
    [1]=> 
    string(1) "a" 
} 
2

我想你的意思是你想排序數組。您可以使用PHP的sort()函數see the manual來選擇(如排序類型,您可能需要SORT_STRING)。

1
$k = array('1', 'a', '2', '3'); 

$varToMove = $k[1]; 

unset($k[1]); 
$k[] = $varToMove; 

var_dump($k); 

您將獲得:

array(4) { 
    [0]=> 
    string(1) "1" 
    [2]=> 
    string(1) "2" 
    [3]=> 
    string(1) "3" 
    [4]=> 
    string(1) "a" 
} 

只是注意,關鍵是1目前下落不明。不知道你是否關心他們。