2012-03-20 925 views
1

我需要一種重新排列多維數組的方法。有沒有簡單的解決方案呢?我之前一直使用array_values來完成單個數組,但它不支持多維數組。帶有多維數組的PHP array_values

我的陣列看起來像這樣

Array 
(
    [2] => Array 
     (
      [text] => test 
     ) 

    [5] => Array 
     (
      [text] => test 
     ) 

    [8] => Array 
     (
      [text] => test 
     ) 

) 

我想它是

Array 
(
    [0] => Array 
     (
      [text] => test 
     ) 

    [1] => Array 
     (
      [text] => test 
     ) 

    [2] => Array 
     (
      [text] => test 
     ) 

) 
+0

如果我理解正確,你想按鍵排序,對不對?不刪除數組鍵?或者,你是按個別「文本」項目排序? – pp19dd 2012-03-20 20:58:34

+0

可能重複? [你如何在PHP中重新索引數組](http://stackoverflow.com/questions/591094/how-do-you-reindex-an-array-in-php) – mseancole 2012-03-20 21:08:23

+0

可能的重複[Array \ _values from multidimensional array ](http://stackoverflow.com/questions/9694072/array-values-from-multidimensional-array) – azerafati 2017-04-04 11:25:58

回答

0

使用ksort功能

+1

雖然這可能在理論上回答這個問題,[這將是更可取的](http://meta.stackexchange.com/ q/8259)在這裏包括答案的基本部分,並提供參考鏈接。 – 2012-03-22 12:08:06

0

我怕你正在使用array_values()走錯了路。嘗試:

$yourArray = array_values($yourArray); 
0

上做一個array_merge()我想你需要以下:

$results = $your_array; 
$tmp = array(); 
foreach ($result as $r) 
{ 
    $tmp[]=$r; 
} 
$results= $tmp; 

祝你好運,

+1

這正是'array_values()'。 – 2012-03-20 21:02:28

+1

我喜歡寫作,但你是對的。 – 2012-03-20 21:07:40

2

array_values作品對我來說很好,能夠產生你想要的結果。

雖然有點難以分辨,因爲所有數組元素都是相同的,但要確保將array_values的返回值正確地分配給新變量。

+0

是的,非常確定array_values是如何工作的 – 2014-03-13 10:58:47

0

您可以使用帶自定義回調的usort,總是返回0,這將不會重新排列數組。

usort($array, function($a, $b) { return 0; });