2010-10-01 19 views
6

Mam tablicy w php tak:array_slice w tablicy wielowymiarowej?

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 
     ) 

) 

Jak mogę uzyskać od 1 5th rzędy sub-macierzy dla każdej tablicy, tak:

Wynik:

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 
     ) 

) 

Odpowiedz

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); 
} 

W ten sposób $ sliced_array będzie zawierało pożądane wyniki.

+0

Whoa, to rozwiązać mój problem. Dzięki! – Apocalypshiit

+0

Nie ma problemu! Cieszę się, że pomogę –

+0

Nie powinien to być '$ sliced_array [] = array_slice ($ sub_array, 0, 5);'? – SAVAFA

5
  • Powtórz powyższą tablicę.
  • Odczytaj wartość przez odniesienie.
  • Usuń klucz-wartość z offsetu 5 do koniec. Nie musisz zbierać wartości zwracanej, ponieważ używamy odwołania do oryginalnej tablicy.

.

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

Working ideone link

0

Czasami warto zajrzeć do array_splice funkcji PHP.

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

+3

Możesz zajrzeć do tytułu pytania. – Ruel

+1

Rozumiem twój punkt widzenia, ale dlaczego miałby zadać to pytanie, gdyby już wiedział o tej funkcji? Pierwszy wiersz linku, który podałem, mówi "array_slice - wyodrębnij kawałek tablicy"? ale tak, zwrócę większą uwagę na tytuł podczas odpowiadania na przyszłe pytania = D – Thomas

Powiązane problemy