3 回答
TA贡献2036条经验 获得超8个赞
您可以通过$data调用回调和解包数组来转置数组。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',
),
)
我的技术的好处是,当您添加更多列时,您永远不需要添加更多函数调用(如果array_column()在每一列上调用,这将不是真的)。我的解决方案永远不需要两个以上的函数调用来完成工作。
TA贡献1856条经验 获得超11个赞
您可以使用array_column()函数从输入数组中的单个列返回值。之后,您可以使用implode()将数组转换为字符串。
$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 关注
- 134 浏览
添加回答
举报