2013-10-22 48 views
0

我做了很多改變,但仍然無法弄清楚。 我有一個數組讓我說:[1,2,3,4,5,6,7,8,9,10] 我只是想問如何添加此數組,直到索引2,並繼續添加休息數組然後將它們分成2個數組。PHP:如何添加數組索引然後切成幾個數組?

input:[1,2,3,4,5,6,7,8,9,10];

過程:[1 + 2 + 3,4 + 5 + 6,7 + 8 + 9,10]

輸出我需要:[6,15,24,10]

然後我希望這個數組切成2

最後的輸出:[6,5],[24,10]

感謝

+0

[array_chunk()](http://php.net/manual/en/function.array-chunk。 PHP)(大小參數爲3),[array_map()](http://www.php.net/manual/en/function.array-map.php)或[array_walk()](http:// www.php.net/manual/en/function.array-walk.php)在做一個[array_sum()](http://www.php.net/manual/en/function.array-sum.php)添加值組;然後[array_chunk()](http://php.net/manual/en/function.array-chunk.php),大小參數爲2 –

+0

謝謝Mark Ba​​rker。已經有解決方案了:P – airi

回答

4

您的代碼將是:

$data = range(1,10); 
$result = array_chunk(array_map('array_sum', array_chunk($data, 3)), 2); 

- 請閱讀array functions手動

+2

優雅的解決方案! – palerdot

+0

It works !! ..嗨,Alma Do Mundo,謝謝你的解決方案。 :) – airi

0

我想你可以使用一個FOR循環來總結你然後需要存儲結果在新陣列中。另一種解決方案是使用array merge。當你完成這個技巧後,你可以創建一個multidimensional array來獲得像[[6,5],[24,10]]的結果。

希望它可以幫助

+0

已經有Alma Do Mundo和Anthony Sterling的解決方案。順便說一句,謝謝Stefano Bosio :) – airi

1

像這樣的事情?

<?php 
$array = range(1, 10); 

$array = array_chunk($array, 3); 

$array = array_map('array_sum', $array); 

$array = array_chunk($array, 2); 

print_r(
    $array 
); 

/* 
    Array 
    (
     [0] => Array 
     (
      [0] => 6 
      [1] => 15 
     ) 
     [1] => Array 
     (
      [0] => 24 
      [1] => 10 
     ) 
    ) 
*/ 
+0

嗨安東尼斯特林,謝謝你的解決方案。你的解決方案也可以.. :) – airi

0

實在看不出你是從這個問題得到什麼的,但我認爲PHP的array_chunk命令可能是你的這個朋友,http://www.php.net/manual/en/function.array-chunk.php

這將讓您的陣列分割成塊3(或任意數量)元素的最後一個元素包含其餘元素(在本例中爲1個元素)

+0

我想用谷歌的圖表。順便說一下,已經得到答案。感謝Pete Ravenscroft :) – airi

相關問題