2010-10-01 49 views
6

Tôi có một mảng trong php như thế này:array_slice trong mảng đa chiều?

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 
     ) 

) 

Làm thế nào để tôi nhận được hàng 1st-5th của tiểu mảng cho mỗi mảng, như thế này:

Kết quả:

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 
     ) 

) 

Trả lời

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 sau đó sẽ chứa kết quả bạn muốn.

+0

Whoa, nó giải quyết được vấn đề của tôi. Cảm ơn! – Apocalypshiit

+0

Không sao cả! Vui mừng được giúp đỡ –

+0

Không nên là '$ sliced_array [] = array_slice ($ sub_array, 0, 5);'? – SAVAFA

5
  • Lặp lại qua mảng.
  • Đọc giá trị theo tham chiếu.
  • Xóa khóa-giá trị khỏi bù trừ 5 đến kết thúc. Bạn không cần thu thập giá trị trả về vì chúng tôi đang sử dụng tham chiếu đến mảng ban đầu.

.

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

Working ideone link

0

Bạn có thể muốn nhìn vào chức năng php array_splice.

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

+3

Bạn có thể muốn xem xét tiêu đề của câu hỏi. – Ruel

+1

Tôi thấy quan điểm của bạn, nhưng tại sao anh ta lại hỏi câu hỏi đó nếu anh ta đã biết về chức năng đó? Dòng đầu tiên của liên kết tôi đã nói "array_slice - Trích xuất một phần của mảng"? nhưng có, tôi sẽ chú ý hơn đến tiêu đề khi trả lời các câu hỏi trong tương lai = D – Thomas