【问题标题】:Convert array keys to formatted class names将数组键转换为格式化的类名
【发布时间】:2016-10-16 01:10:11
【问题描述】:

我需要使用这个数组并将 keys 转换为一个字符串。寻找一种有效的方法来做到这一点。

  1. 每个元素在名称前添加一个句点( .first_post )
  2. 在每个类名之前与另一个字符串和空格连接 (.navigation .first_post)
  3. 名称后的逗号 ( .navigation .first_post, )
  4. "_" 替换为 "-" (.navigation .first-post, )

物品

array (
  'first_post' => 'First Post' 
  'first_page' => 'First Page' 
  'prev_page' => 'Previous Page'
  'next_page' => 'Next Page'
  'last_page' => 'Last Page'
  'last_post' => 'Last Post'
);

这就是我所希望的

.navigation .first-post, .navigation .first-page, .navigation .prev-post,
.navigation .next-page, .navigation .last-page, .navigation .last-post

【问题讨论】:

    标签: php arrays replace concat


    【解决方案1】:

    尝试用新值替换/添加键

    foreach($arr as $k=>$v){
        $k = '.navigation .'.str_replace('_', '-', $k);
        $newarr[$k] = $v;
    }
    print_r($newarr);
    

    如果您希望键为逗号分隔的字符串

    $str = implode(", ", array_keys($newarr))
    

    【讨论】:

      【解决方案2】:

      array_map 为您提供了一种优雅的方式来对数组的每个元素进行转换。之后,您需要做的就是implode 连接所有值的结果:

      $arr = array (
        'first_post' => 'First Post',
        'first_page' => 'First Page',
        'prev_page' => 'Previous Page',
        'next_page' => 'Next Page',
        'last_page' => 'Last Page',
        'last_post' => 'Last Post'
      );
      
      function transform($x) {
          return '.navigation .' . str_replace('_', '-', $x);
      };
      
      $result = implode(', ', array_map('transform', array_keys($arr)));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 1970-01-01
        • 2019-11-09
        相关资源
        最近更新 更多