2012-09-27 41 views
0

我們正在尋找一種可以合併數組鍵和值並更新它的功能。如何合併10個數組鍵和值,並更新特定數組?

$array = array('testing1','testing2','testing3','testing4','testing5','testing6','testing7','testing8','testing9','testing10','testing11','testing12','testing13','testing14'); 

我們只是想將10個值與'space'這樣合併。

$finalarray = array('testing1 testing2 testing3 testing4 testing5 testing6 testing7 testing8 testing9 testing10', 'testing11 testing12 testing13 testing14'); 

有什麼功能可以在PHP中做同樣的事情嗎?

+0

如果有的話,'$ finalarray'看起來會是什麼樣,比如原來的24個字符串不是14?它會有兩個字符串,每個字符串包含10個原始元素,第三個字符串包含剩餘的4個元素? – Havelock

回答

2

可以使用array_chunkarray_map

$array = array('testing1','testing2','testing3','testing4','testing5','testing6','testing7','testing8','testing9','testing10','testing11','testing12','testing13','testing14'); 
    $final = array_chunk($array,10);  
    $final = array_map(function ($n){return implode(" ", $n);}, $final); 

輸出

array 
    0 => string 'testing1 testing2 testing3 testing4 testing5 testing6 testing7 testing8 testing9 testing10' (length=90) 
    1 => string 'testing11 testing12 testing13 testing14' (length=39) 
+1

嗯,我想OP想要在一個字符串中的前十個,其餘的在另一個;) – Havelock

+0

哦..我會更新代碼,添加'array_slice'到答案 – Baba

+0

是的哈夫洛克,正是。 – Sam

0

我沒有看到在我的腦海任何直接的PHP函數,但你可以嘗試這樣的事:

$newArray = count($array) > 0 ? array ($array[0]) : array(); 
for ($i=1;$i<count($array);$i++) { 
    if ($i % 10 == 0) { 
     $finalarray[] = $newArray; 
     $newArray = array ($array[$i]); 
    } else { 
     $newArray[] = $array[$i]; 
    } 
} 
if (count($newArray) > 0) { 
    $finalarray[] = $newArray; 
} 
+0

當我們print_r($ finalarray); ,那麼它將打印這些值Array([0] => Array()[1] => Array([0] => testing2 [1] => testing3 [2] => testing4 [3] => testing5 [4 ] => testing6 [5] => testing7 [6] => testing8 [7] => testing9 [8] => testing10)[2] => Array([0] => testing12 [1] => testing13 [2 ] => testing14))編輯代碼' – Sam

+0

,再試一次 –