2010-10-01 52 views
6

我在PHP中像這樣的數組:array_slice在多維數組中?

Array 
(
    [0] => Array 
     (
       [915] => 1 
       [1295] => 1 
       [1090] => 1 
       [1315] => 0.93759357774 
       [128] => 0.93759357774 
       [88] => 0.731522789561 
       [1297] => 0.731522789561 
       [1269] => 0.525492880722 
       [1298] => 0.525492880722 
       [121] => 0.519133966069 
     ) 
    [1] => Array 
     (
       [585] => 1 
       [1145] => 1 
       [1209] => 1 
       [375] => 1 
       [1144] => 1 
       [913] => 1 
       [1130] => 0.996351158355 
       [215] => 0.937096401456 
       [1296] => 0.879373313559 
       [30] => 0.866473953643 
       [780] => 0.866473953643 
       [1305] => 0.866473953643 
       [1293] => 0.866473953643 
     ) 

) 

如何獲得子陣列的第1,第5行對於每個陣列,像這樣:

結果:

Array 
(
    [0] => Array 
     (
       [915] => 1 
       [1295] => 1 
       [1090] => 1 
       [1315] => 0.93759357774 
       [128] => 0.93759357774 
     ) 
    [1] => Array 
     (
       [585] => 1 
       [1145] => 1 
       [1209] => 1 
       [375] => 1 
       [1144] => 1 
     ) 

) 

回答

15
$multid_array = array(/* Your Multidimensional array from above*/); 

$sliced_array = array(); //setup the array you want with the sliced values. 

//loop though each sub array and slice off the first 5 to a new multidimensional array 
foreach ($multid_array as $sub_array) { 
    $sliced_array[] = array_slice($sub_array, 0, 5); 
} 

$ sliced_array將包含您想要的輸出。

+0

哇,它解決了我的問題。謝謝! – Apocalypshiit 2010-10-01 07:45:50

+0

沒問題!很高興幫助 – 2010-10-01 07:47:39

+0

不應該是'$ sliced_array [] = array_slice($ sub_array,0,5);'? – SAVAFA 2013-05-22 18:03:05

5
  • 遍歷數組。
  • 通過參考閱讀值。
  • 從偏移量5刪除鍵值,直到 結束。您不需要收集返回值,因爲我們使用對原始數組的引用。

foreach($mainArray as $key => &$value) { 
    array_splice($value,5); 
} 

Working ideone link

0

你可能想看看PHP函數array_splice。

http://no.php.net/manual/en/function.array-slice.php

+3

你可能想看看問題的標題。 – Ruel 2010-10-01 07:38:58

+1

我明白你的觀點,但爲什麼他會問這個問題,如果他已經知道那個功能?我給的鏈​​接的第一行說「array_slice - 提取數組的一部分」?但是,是的,在回答未來問題= D時,我會更加關注標題 – Thomas 2010-10-11 08:42:52