php - PHP:如何通过重复值展平多维数组
问题描述
我有以下数组:
array(3) {
[0]=>
array(2) {
["label"]=> string(10) "Chardonnay"
["value"]=> int(245)
}
[1]=>
array(2) {
["label"]=> string(10) "Chardonnay"
["value"]=> int(33)
}
[2]=>
array(2) {
["label"]=> string(10) "Chardonnay"
["value"]=>int(175)
}
[3]=>
array(2) {
["label"]=> string(10) "Stein"
["value"]=>int(195)
}
}
我将如何去“过滤”这个数组,使它看起来像这样:
array(2) {
[0]=>
array(2) {
["label"]=> string(5) "Chardonnay"
["value"]=> int(245)
}
[1]=>
array(2) {
["label"]=> string(10) "Stein"
["value"]=>int(195)
}
}
所以本质上,我想按值删除数组元素,其中值不是唯一的。
我什至不知道从哪里开始。请协助?
解决方案
由于键必须是唯一的,因此您可以在标签上建立索引,并且每个键只有一个:
$result = array_column($array, null, 'label');
如果您只想要具有唯一值的单个维度,请提取所有标签,然后使其唯一:
$result = array_unique(array_column($array, 'label'));
如果此数组来自数据库查询,那么您将在查询中执行此操作。
推荐阅读
- vim - 使用 vim 编辑器设置时如何在 Google Colab 中导航黑白单元格?
- node.js - 将 PHP Curl 转换为 nodeJs 请求的问题
- flutter - 如何更改 Flutter 中的 MainActivity.kt 文件?
- c++ - 无论在 C++ 中如何,撇号都会被解释为 char
- azure - Azure AD - 没有同步的 ADFS 帐户
- python - 用于下载和上传的 Boto3 预签名 URL
- javascript - JavaScript 播放 RAW 音频字节/流
- vb.net - 定义和使用扩展方法
- c - 为什么在创建链表时gets() 不能正常工作
- reactjs - 我可以更改 react js 包中的样式吗?