php - 从关联数组的数组中获取一个属性的唯一值

标签 php arrays foreach unique unique-values

我有一个这样的数组:

$a = array(
    0 => array('type' => 'bar', 'image' => 'a.jpg'),
    1 => array('type' => 'food', 'image' => 'b.jpg'),
    2 => array('type' => 'bar', 'image' => 'c.jpg'),
    3 => array('type' => 'default', 'image' => 'd.jpg'),
    4 => array('type' => 'food', 'image' => 'e.jpg'),
    5 => array('type' => 'food', 'image' => 'f.jpg'),
    6 => array('type' => 'food', 'image' => 'h.jpg')
)

我如何找出唯一的类型值(食物、酒吧和默认值)?我可以在 foreach 循环中遍历数组,但有更好的方法吗?

最佳答案

在 PHP >= 5.3 中使用匿名函数:

$unique_types = array_unique(array_map(function($elem){return $elem['type'];}, $a));

对于以前的版本,您可以声明一个单独的函数:

function get_type($elem)
{
    return $elem['type'];
}

$unique_types = array_unique(array_map("get_type", $a));

关于php - 从关联数组的数组中获取一个属性的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561707/

相关文章:

python - 在 Python 中创建具有多个给定值的掩码数组

java - 双数组方法错误: Incompatible types: possible lossy conversion from double to int

java - 有没有办法缩短java中的for-each循环?

javascript - 将图像加载到 div 而不刷新浏览器

c - 我应该如何使用包含数组的结构进行 malloc/realloc?

php - SugarCRM REST API set_relationship 之间的报价和产品包

PHP foreach数组推送键和值

actionscript-3 - 在 ActionScript 中很好地处理 "for each"吗?

php - 在 Laravel 中创建多态字段名的规则是什么?

php - 我在 wordpress 中的 contact.php 表单不发送消息