我有一个像这样的数组
array(3) {
[0]=>
array(2) {
["company"]=>
string(15) "Company A"
["value"]=>
string(6) "100"
}
[1]=>
array(2) {
["company"]=>
string(9) "Company B"
["value"]=>
string(6) "150"
}
[2]=>
array(2) {
["company"]=>
string(13) "Company C"
["value"]=>
string(6) "200"
}
}
现在我想获取所有公司名称并通过逗号连接它们。我可以这样:
foreach ($array as $a) {
$companies[] = $a['company'];
}
$company_names = implode(',', $companies);
var_dump($company_names);
打印
string(29) "Company A,Company B,Company C"
所以说:它有效。但这对我来说似乎效率低下,那就是循环。
是否有更有效的方法来获得相同的结果?例如。使用array_keys
或其他内容?
答案 0 :(得分:4)
您可以使用array_column()
但它需要PHP版本大于5.5:
$array = array_column($companies, 'company');
echo implode(',', $array);
答案 1 :(得分:1)
按照 Fu Xu :
的建议使用array_column()
$array = array_column($companies, 'company');
echo implode(',', $array);
答案 2 :(得分:1)
是否有更有效的方法来获得相同的结果?
高效是一个广义的术语。我假设高效表示 native 。在这种情况下,是的,在PHP 5.5+中,您可以将array_column()
用作answered by Fu Xu。
否则,在PHP< 5.5,没有。那就是没有 native 。虽然你可以将几十个本地PHP array functions中的任何一个组合起来以实现同样的目的,但它们只是让猫皮肤更多的方法。