【问题标题】:Renaming keys in multidimentional php array as per reference根据参考重命名多维php数组中的键
【发布时间】:2015-06-09 00:01:21
【问题描述】:

我正在尝试重命名我的多维数组上的键,基于第二个数组保存正确的名称。

我的多维数组

$earth = Array (
  World => Array(
    Europe => Array(
      Portugal => Array()
      spain => Array()
      France => Array()
    )
    asia => Array(
      Japan => Array()
      China => Array()
    )
  )

和正确的名称数组:

$rename = Array (
  [asia] => Asia
  [spain] => Spain
)

【问题讨论】:

    标签: php multidimensional-array key rename


    【解决方案1】:

    小菜一碟


    数组:earth重命名

        $earth = Array(
        'World' => Array(
            'Europe' => Array(
                'Portugal' => Array(),
                'spain' => Array(),
                'France' => Array()
                ),
            'asia' => Array(
                'Japan' => Array(),
                'China' => Array()
                )
            )
        );
    
        $rename = Array (
          'asia' => 'Asia',
          'spain' => 'Spain'
        );
    

    并用 em 调用这个函数

    function test_rename(&$earth,$rename){
        foreach ($earth as $e => &$y) {
            if(in_array($e, array_keys($rename))){
                $earth[$rename[$e]] = $earth[$e];
                unset($earth[$e]);
            }
            if(is_array($y)){
                test_rename($y,$rename);
            }
        }
    }
    
    test_rename($earth,$rename);
    

    这个函数是递归的,将需要重命名的key的值用新的key推送到原始数组,并取消设置以前的key:

    描述性

    • foreach $earth 数组 元素检查元素键是否在 $rename 数组的键中
    • 如果 is ,我们将这个元素添加到这个 $earth 数组 中,但我们将它分配给键,在匹配 $ 的值中遇到重命名数组键!
    • 然后取消设置我们遇到的这个 $earth 数组 元素。
    • 完成!如果此元素的类型(是否遇到我们)是数组,则函数调用自身。

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 2015-01-22
      • 2014-11-23
      相关资源
      最近更新 更多