array_slice в многомерном массиве? - PullRequest
6 голосов
/ 01 октября 2010

У меня есть массив в php, как это:

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
       )

)

Ответы [ 3 ]

15 голосов
/ 01 октября 2010
$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 будет содержать требуемый вывод.

5 голосов
/ 01 октября 2010
  • Перебор массива.
  • Считывание значения по ссылке.
  • Удаление значений ключа из смещения 5 до конца.Вам не нужно собирать возвращаемое значение, потому что мы используем ссылку на исходный массив.

.

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

Рабочая ссылка идеона

0 голосов
/ 01 октября 2010

Возможно, вы захотите заглянуть в php-функцию array_splice.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...