PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP-展平多维数组,但保持键?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有以下内容

[6199]=>
  array(12) {
    ["Origin"]=>
    array(3) {
      ["name"]=>
      array(1) {
        [0]=>
        String(4) "Cuba"
      }
      ["slug"]=>
      array(1) {
        [0]=>
        String(27) "cuabn-havana-habanos-cigars"
      }
      ["id"]=>
      array(1) {
        [0]=>
        int(0)
      }
    }
    ["Filler"]=>
    array(3) {
      ["name"]=>
      array(2) {
        [0]=>
        String(9) "Dominican"
        [1]=>
        String(10) "Nicaraguan"
      }
      ["slug"]=>
      array(2) {
        [0]=>
        String(9) "dominican"
        [1]=>
        String(10) "nicaraguan"
      }
      ["id"]=>
      array(2) {
        [0]=>
        int(0)
        [1]=>
        int(1)
      }
    }
  }
  [6192]=>
  array(11) {
    ["Origin"]=>
    array(3) {
      ["name"]=>
      array(1) {
        [0]=>
        String(9) "Nicaragua"
      }
      ["slug"]=>
      array(1) {
        [0]=>
        String(27) "nicaraguan-new-world-cigars"
      }
      ["id"]=>
      array(1) {
        [0]=>
        int(0)
      }
    }
    ["Filler"]=>
      array(3) {
        ["name"]=>
        array(2) {
          [0]=>
          String(9) "Java"
          [1]=>
          String(10) "Nicaraguan"
        }
        ["slug"]=>
        array(2) {
          [0]=>
          String(9) "java"
          [1]=>
          String(10) "nicaraguan"
        }
        ["id"]=>
        array(2) {
          [0]=>
          int(0)
          [1]=>
          int(1)
        }
      }
  }

我的预期输出是:

  array(12) {
    ["Origin"]=>
    array(3) {
      ["name"]=>
      array(1) {
        [0]=>
        String(4) "Cuba".
        [1]=>
        String(9) "Nicaragua"
      }
      ["slug"]=>
      array(1) {
        [0]=>
        String(27) "cuabn-havana-habanos-cigars",
        [0]=>
        String(27) "nicaraguan-new-world-cigars"
      }
      ["id"]=>
      array(1) {
        [0]=>
        int(0)
      }
    }
    ["Filler"]=>
    array(3) {
      ["name"]=>
      array(2) {
        [0]=>
        String(9) "Dominican"
        [1]=>
        String(10) "Nicaraguan"
        [2]=>
        String(9) "Java"
      }
      ["slug"]=>
      array(2) {
        [0]=>
        String(9) "dominican"
        [1]=>
        String(10) "nicaraguan"
        [3]=>
        String(9) "java"
      }
      ["id"]=>
      array(2) {
        [0]=>
        int(0)
        [1]=>
        int(1)
      }
    }

看看如何消除重复,并合并每个数组并保持“ origin”键.
我试过了

  foreach ($resultterms as $keyname => $valueName){

    foreach ($valuename as $keysub => $valuesub) {

      foreach($valuesub['name'] as $keysubsub => $valuesubsub){

        # code...
        $prods_atts[$keysub]['name'][$keysubsub] = $valuesubsub;
        $prods_atts[$keysub]['slug'][$keysubsub] = $valuesub['slug'][$keysubsub];
        $prods_atts[$keysub]['id'][$keysubsub] = $valuesub['id'][$keysubsub];

      }
    }

  }

$resultterms是原始数组,但是不起作用.我想知道是否有一个很棒的PHP函数可以用来合并这些函数,而不是为每个循环嵌套那么多函数

解决方法:

我相信您只是在寻找array_merge_recursive.

call_user_func_array('array_merge_recursive', array_values($prod_atts));

> call_user_func_array允许将数组转换为参数列表
> array_values,因为最后,您似乎想摆脱阵列的第一层

为了尝试它,您可以发布变量的var_export而不是var_dump吗?

echo(var_export($prod_atts, truE));

大佬总结

以上是大佬教程为你收集整理的PHP-展平多维数组,但保持键?全部内容,希望文章能够帮你解决PHP-展平多维数组,但保持键?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: