2010-10-01 25 views
6

tengo una matriz en PHP como esto:array_slice en una matriz multidimensional?

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 
     ) 

) 

¿Cómo consigo los 1 al 5 filas de sub-matriz para cada matriz, así:

Resultado:

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 
     ) 

) 

Respuesta

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

El $ sliced_array contendrá la salida que desea.

+0

Whoa, ha resuelto mi problema. ¡Gracias! – Apocalypshiit

+0

¡Ningún problema! Me alegra ayudar –

+0

¿No debería ser '$ sliced_array [] = array_slice ($ sub_array, 0, 5);'? – SAVAFA

5
  • Iterar sobre la matriz.
  • Lea el valor por referencia.
  • Borrar valores-clave del desplazamiento 5 hasta final. No es necesario que recopile el valor devuelto porque estamos utilizando la referencia a la matriz original.

.

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

Working ideone link

0

Es posible que desee ver en la array_splice función de php.

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

+3

Es posible que desee examinar el título de la pregunta. – Ruel

+1

Entiendo tu punto, pero ¿por qué haría esa pregunta si ya conocía esa función? La primera línea del enlace que di dice "array_slice - ¿Extraer un trozo de la matriz"? pero sí, prestaré más atención al título cuando responda preguntas futuras = D – Thomas

Cuestiones relacionadas