【问题标题】:How to separate keys of duplicate values in an array如何分隔数组中重复值的键
【发布时间】:2013-07-17 05:05:55
【问题描述】:

我有一个动态的 $my_Array。我应该怎么做才能根据 $my_Array 获得 $Final_array。

    $my_Array = array(  
                ['arm'] => 'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6',
                ['min'] => 'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6',
                ['msk'] => 'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6',
                ['con'] => 'c72a7fb8-308a-482a-96d5-7a7853e16c49',
                ['ref'] => 'c72a7fb8-308a-482a-96d5-7a7853e16c49',
             ) 


   $Final_array = array
                (   'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6' => 'arm, min, msk',
                    'c72a7fb8-308a-482a-96d5-7a7853e16c49' => 'con, ref'
                )

【问题讨论】:

  • 为什么不自己写呢?这并不难。快来学习,不要让别人写你的代码

标签: php arrays multidimensional-array logic


【解决方案1】:
$my_Array = array(  
                'arm' => 'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6',
                'min' => 'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6',
                'msk' => 'cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6',
                'con' => 'c72a7fb8-308a-482a-96d5-7a7853e16c49',
                'ref' => 'c72a7fb8-308a-482a-96d5-7a7853e16c49',
             ) ;
$data = array();
foreach( $my_Array as $key => $value) {
    if(isset( $data[ $value ] )) {
        $data[ $value ] = $data[ $value ] .', '.$key;
    } else {
        $data[ $value ] = $key;
    }
}

希望以上代码对您有所帮助。

【讨论】:

    【解决方案2】:
    $Final_array = array();               
    foreach($my_Array as $key => $value){
     if(array_key_exists($value, $Final_array)){
    
      $Final_array[$value] = $Final_array[$value]. ", ".$key;
    
     }else{
    
      $Final_array[$value] = $key;
    
     }
    }
    print_r($Final_array);        
    ?>
    

    输出:

    Array
    (
        [cc9f8eb4-e29f-44b4-8dcd-ac08e9b1faa6] => arm, min, msk
        [c72a7fb8-308a-482a-96d5-7a7853e16c49] => con, ref
    )
    

    【讨论】:

      【解决方案3】:

      我尝试用一​​个循环执行此操作,但失败了,但希望你没问题。

      $new = array();
      foreach ($my_Array as $key => $val) {
         $new[$val][] = $key;
      }
      
      foreach ($new as $key => $val) {
         $new[$key] = implode(", ". $val);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 2019-11-17
        • 1970-01-01
        • 2014-07-31
        • 1970-01-01
        • 2020-03-11
        • 1970-01-01
        相关资源
        最近更新 更多