我沒有數組的指定數目,但他們看起來像這樣:合併多陣列成字符串
array(("john","alex","tyler"),("1","2","3"),("brown","yellow","green"));
例有3個個子陣列,但問題是這個數字可以改變。
作爲最終的輸出,我需要在這個例子中,3個字符串的數組。
array("john,1,brown","alex,2,yellow","tyler,3,green");
我試過在函數中構建,仍然沒有令人滿意的解決方案。
我沒有數組的指定數目,但他們看起來像這樣:合併多陣列成字符串
array(("john","alex","tyler"),("1","2","3"),("brown","yellow","green"));
例有3個個子陣列,但問題是這個數字可以改變。
作爲最終的輸出,我需要在這個例子中,3個字符串的數組。
array("john,1,brown","alex,2,yellow","tyler,3,green");
我試過在函數中構建,仍然沒有令人滿意的解決方案。
使用call_user_func_array
,array_map
和array_merge
函數的溶液:
$arr = [["john","alex","tyler"],["1","2","3"],["brown","yellow","green"]];
$groups = call_user_func_array("array_map", array_merge([null], $arr));
$result = array_map(function ($v) {
return implode(",", $v);
}, $groups);
print_r($result);
輸出:
Array
(
[0] => john,1,brown
[1] => alex,2,yellow
[2] => tyler,3,green
)
在這裏,我們通過將陣列中的行成列改變陣列的值。然後用內爆逗號(,
)實施例每個陣列:array[1][0]
將變得array[0][1]
等
<?php
$array=array(
array("john","alex","tyler"),
array("1","2","3"),
array("brown","yellow","green")
);
$result=array();
for($x=0;$x<count($array);$x++)
{
for($y=0;$y<count($array[$x]);$y++)
{
$result[$x][$y]=$array[$y][$x];//changing array values
}
}
foreach($result as $key => $value)
{
$result[$key]= implode(",", $value);//combining array values on comma(,)
}
print_r($result);
輸出:
Array
(
[0] => john,1,brown
[1] => alex,2,yellow
[2] => tyler,3,green
)
簡單的方法
<?php
$array = array(array("john","alex","tyler"),array("1","2","3"),array("brown","yellow","green"));
$result = array_map(function(...$elements) { return implode(",", $elements); }, ...$array);
print_r($result);
結果與其他答覆相同。
這裏是在稍微詳細回事:
array_map(/* anonymomous function */, ...$array);
...$array
採用嵌套數組和unpackes它,就像你會打電話
array_map(/* anonymomous function */, $array[0], $array[1], ... $array[n])
array_map可能要經過多次數組並將給定的可調用對象應用於每一輪。
雖然匿名功能更多或更少的不逆
function(...$elements) { return implode(",", $elements); }
...$elements
需要的參數的任意的量,並把它們成一個陣列,然後將其加入到一個字符串。
@ ultradurable3這也可以做array_column()在這裏你不用擔心子陣列的數量,試圖象下面這樣:
<?php
$array = array(array("john","alex","tyler"), array("1","2","3"), array("brown","yellow","green"));
$finalArr = array(implode(",", array_column($array, 0)), implode(",", array_column($array, 1)), implode(",", array_column($array, 2)));
echo "<pre>";
print_r($finalArr);
是子數組的長度始終是固定的?意味着子陣沒有任何限制,但它總是有3個元素? –