我有这个数组:
$priceTableData = array(
array('productId'=>1,'price'=>50,'discount'=>12),
array('productId'=>2,'price'=>22,'discount'=>2),
array('productId'=>3,'price'=>7,'discount'=>0),
array('productId'=>4,'price'=>9,'discount'=>0),
array('productId'=>5,'price'=>35,'discount'=>7),
);
我希望从中得到这个数组:
array(5) {
[1]=> int(12)
[2]=> int(2)
[3]=> int(0)
[4]=> int(0)
[5]=> int(7)
}
我使用这种自定义方法,
function getDiscounts(array $priceData){
$result = array();
foreach ($priceData as $array){
$result[$array['productId']] = $array['discount'];
}
return $result;
}
然后我用它作为:
var_dump(getDiscounts($priceTableData));
我的问题是:是否存在本地方式,而不是为其设置自定义功能?
感谢。
答案 0 :(得分:2)
如果您使用的是PHP 5.5,则可以使用array_column()
:
$discounts= array_column($priceTableData , 'discount');
由于它是在评论中提出的,我还将提供如果你的数组键是由产品ID定义的,你应该使用array_column()中的第三个参数来指定productId
作为新的键。阵列:
$discounts= array_column($priceTableData , 'discount', 'productId ');
答案 1 :(得分:2)
您可以使用PHP 5.5中引入的array_column
$result = array_column($priceTableData, 'discount','productId');
print_r($result);
答案 2 :(得分:2)
如果是旧版本的php。
$result = array_map(function($sub)
{ return $sub['discount']; }, $priceTableData);