[英]Implode data from a Two-dimensional array
我認為解決起來不應該那么困難,但我無法得到解決方案。
我試圖內爆一個數組,以便得到這個結果:
$new_array = "755, 646, 648, 260, 257, 261, 271, 764, ..."
這是我的數組:
Array
(
[0] => Array
(
[0] => 755
[1] => 646
)
[1] => Array
(
[0] => 648
[1] => 260
[2] => 257
[3] => 261
)
[2] => Array
(
[0] => 271
)
[3] => Array
(
[0] => 764
[1] => 643
[2] => 260
[3] => 263
[4] => 756
[5] => 763
[6] => 762
[7] => 259
[8] => 257
[9] => 758
[10] => 261
[11] => 768
[12] => 757
[13] => 647
)
)
我知道如何用一個簡單的數組做到這一點:
$newarray = implode(", ", $array);
我知道如何獲取密鑰(使用array_keys
)
$new_array = implode(", ", array_keys($array));
我已經嘗試過使用array_map
但array_map
沒有結果。
Coud你幫助我並指出我正確的方向?
你必須將內部數組合並為一個(如果我們的多維數組稱為$list
),我們可以:
$merged = array_reduce($list, 'array_merge', array());
現在你可以很容易地破壞它:
$string = implode(', ', $merged);
回顯給定的字符串將打印:
755,646,648,260,257,261,271,764,......
要知道你不能破壞多維數組,因為它的元素是數組本身,因此可能會出現array to string conversion
錯誤,因此我們應該使數組變平,為此你還可以檢查如何展平多維數組? 。
還要知道array_reduce
作用是什么:
使用回調函數迭代地將數組減少為單個值。 查看更多
使用array_walk_recursive
函數的簡單解決方案:
// $arr is your initial array
$new_arr = [];
array_walk_recursive($arr, function($v) use(&$new_arr){ $new_arr[] = $v; });
試試這個:
<?php
$array = array
(
array(755,646),
array(648,260,257,261),
array(271),
array(764,643,260,263,756,763,762,259,257,758,261,768,757,647)
);
echo "<pre>";
print_r($array);
foreach ($array as $value) {
$newstring[]=implode(",",$value);
}
echo implode(",",$newstring);
?>
您可以使用上面的foreach循環來完成它
帶循環:
$array = array(
0 => array(
'name' => 'John Doe',
'email' => 'john@example.com'
),
1 => array(
'name' => 'Jane Doe2',
'email' => 'jane@example.com2'
),
);
//function to display values
function ImplodeDataValue($array) {
$tosinglearray=array();
for ($i = 0; $i <= count($array)-1; $i++) {
$tosinglearray[]=implode(',',$array[$i]);
}
return implode(',',$tosinglearray);
}
echo ImplodeDataValue($array);
//returns John Doe,john@example.com,Jane Doe2,jane@example.com2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.