[英]PHP Split array in subarrays
注意,array_chunk不是我的解決方案(在我看來)。
我有大約150.000個元素的數組
Array
(
[0] => Array
(
[name] => Danilo
[phone] => 33568
)
[1] => Array
(
[name] => Alessandro
[phone] => 392222
)
[2] => Array
(
[name] => Alex
[phone] => 3922
)
[3] => Array
(
[name] => Capa
[phone] => 392
)
)
等等。 我會將這個數組分成幾個數組,例如每個數組有3.000個元素。
我看到了array_chunk,但是它返回了一個帶有多個子數組的數組。
我需要幾個子數組將它們存儲在數據庫中,並在以后進行詳細說明。
我發瘋了,從$ temp開始編寫一個片段,並將其分成較小的數組。
$size_chunks = 1;
$temp = array_chunk($recipients, $size_chunks);
foreach ($temp as $key=>$value)
{
if ($key<$size_chunks)
{
$to_store[] = $temp[$key];
}
//print_r($to_store);
// pseudo sql
// INSERT INTO table (sub_recipient) VALUES ($to_store);
$to_store = array();
}
因此,每次for循環結束時,降低溫度,存儲$ to_store數組,然后為其他塊重新啟動。
非常感謝你。
我的示例塊中的PS == 1,因為起始數組很小...;)
在我的chunk = 1的示例中,我需要從數組開始這4個數組:
Array
(
[0] => Array
(
[name] => Danilo
[phone] => 33568
)
)
Array
(
[0] => Array
(
[name] => Alessandro
[phone] => 39222
)
)
Array
(
[0] => Array
(
[name] => Alex
[phone] => 39222
)
)
Array
(
[0] => Array
(
[name] => Capa
[phone] => 392
)
)
1-以15.000個元素的起始數組和3.000個塊為例,我需要輸入(15.000 / 3.000)= 5個數組。 我將它們保存在數據庫中,因此在DB中,我將有5行(每個數組一行)。
2-以4個元素為起始數組,塊為1,我需要在輸出(4/1)= 4個數組中輸入。 我將它們保存在數據庫中,因此在DB中,我將有4行(每個數組一行)。
array_chunks()
已經array_chunks()
您的要求,只需保存即可:
$chunks = array_chunk($array, $size_chunks);
foreach ($chunks as $chunk) {
// save $chunk to your database
}
$recipients = Array(
Array("fdbvfdb","dsacsdcds"),
Array("hrloo","dacdsc"),
Array("dcsdc","adcsd"),
Array("dcsdc","adcsd")
);
$total = count($recipients);//count 150.000 elements
$i=1;
for($i=0;$i<$total;$i++){
$O = array_slice($recipients,$i,1);
print_r($O);
//Your insert/Save code
}
您可以使用此代碼,還有使用Array_Slice
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.