3 回答

TA貢獻2036條經驗 獲得超8個贊
您可以通過$data調用回調和解包數(shù)組來轉置數(shù)組。array_map()null$data
然后,您只需使用array_combine()您想要的第一級密鑰。
代碼:(演示)
$data = [
["8","red"],
["9", "yellow"],
["8","red"]
];
var_export(array_combine(['size', 'color'], array_map(null, ...$data)));
輸出:
array (
'size' =>
array (
0 => '8',
1 => '9',
2 => '8',
),
'color' =>
array (
0 => 'red',
1 => 'yellow',
2 => 'red',
),
)
我的技術的好處是,當您添加更多列時,您永遠不需要添加更多函數(shù)調用(如果array_column()在每一列上調用,這將不是真的)。我的解決方案永遠不需要兩個以上的函數(shù)調用來完成工作。

TA貢獻1856條經驗 獲得超11個贊
您可以使用array_column()函數(shù)從輸入數(shù)組中的單個列返回值。之后,您可以使用implode()將數(shù)組轉換為字符串。
$data = [
[0 => 8, 1 => 'red'],
[0 => 9, 1 => 'yellow'],
[0 => 9, 1 => 'red']
];
$newArray['size'] = array_column($data, 0);
$newArray['color'] = array_column($data, 1);
echo "<pre>";
print_r($newArray);
echo "</pre>";
echo "<p>Size: " . implode($newArray['size'], ',') . "</p>";
echo "<p>Color: " . implode($newArray['color'], ',') . "</p>";

TA貢獻1848條經驗 獲得超6個贊
<?php
$data=array(
array("8","red"),
array("9", "Yellow"),
array("8","red")
);
$size=[];
$colors=[];
foreach($data as $key=>$value){
echo "<pre>";
print_r($value);
$size[$key]=$value[0];
$colors[$key]=$value[1];
}
print_r($size);
print_r($colors);
# comma seprated
echo "Size List:";
print_r(implode($size, ','));
echo "<br>";
echo "Color List:";
print_r(implode($colors, ','));
?>
- 3 回答
- 0 關注
- 175 瀏覽
添加回答
舉報