php 按值对1d个数组数据进行分组,并使用原始键填充子数组

uttx8gqw  于 2023-01-29  发布在  PHP
关注(0)|答案(2)|浏览(124)

我想将相同值的所有键组合起来,并将该值作为键
样本数据:

Array
(
    [825] => ca_knife_features 
    [838] => ca_knife_features 
    [795] => ca_knife_handle_materials 
    [853] => ca_knife_handle_materials 
)

预期结果:

Array
(
[ca_knife_features]=>array(825,838)
[ca_knife_handle_materials]=>array(795,853)
)

我该怎么做呢?

vxf3dgd4

vxf3dgd41#

获取所有值的所有键很容易。

foreach ($array as $key => $value) {
    $result[$value][] = $key;
}

但这并不是只得到重复的值,有很多不同的方法可以做到这一点,一种方法是过滤结果,只显示具有多个键的值。

$result = array_filter($result, function($item) {
    return count($item) > 1;
});
fivyi3re

fivyi3re2#

我已经用下面的代码完成了它:

foreach($multiattrData as $key=>$value)
    if(array_key_exists($value, $out)){
    $out[$value][] = $key;}
    else{
         $out[$value] = array($key);  
    }

相关问题