<bdo id='p9j7J'></bdo><ul id='p9j7J'></ul>
  • <small id='p9j7J'></small><noframes id='p9j7J'>

      <tfoot id='p9j7J'></tfoot>

        <legend id='p9j7J'><style id='p9j7J'><dir id='p9j7J'><q id='p9j7J'></q></dir></style></legend>
        <i id='p9j7J'><tr id='p9j7J'><dt id='p9j7J'><q id='p9j7J'><span id='p9j7J'><b id='p9j7J'><form id='p9j7J'><ins id='p9j7J'></ins><ul id='p9j7J'></ul><sub id='p9j7J'></sub></form><legend id='p9j7J'></legend><bdo id='p9j7J'><pre id='p9j7J'><center id='p9j7J'></center></pre></bdo></b><th id='p9j7J'></th></span></q></dt></tr></i><div id='p9j7J'><tfoot id='p9j7J'></tfoot><dl id='p9j7J'><fieldset id='p9j7J'></fieldset></dl></div>

        从多维数组中删除重复键

        时间:2023-11-30

          <tfoot id='Vr0z3'></tfoot>
            <bdo id='Vr0z3'></bdo><ul id='Vr0z3'></ul>

            <i id='Vr0z3'><tr id='Vr0z3'><dt id='Vr0z3'><q id='Vr0z3'><span id='Vr0z3'><b id='Vr0z3'><form id='Vr0z3'><ins id='Vr0z3'></ins><ul id='Vr0z3'></ul><sub id='Vr0z3'></sub></form><legend id='Vr0z3'></legend><bdo id='Vr0z3'><pre id='Vr0z3'><center id='Vr0z3'></center></pre></bdo></b><th id='Vr0z3'></th></span></q></dt></tr></i><div id='Vr0z3'><tfoot id='Vr0z3'></tfoot><dl id='Vr0z3'><fieldset id='Vr0z3'></fieldset></dl></div>
                  <tbody id='Vr0z3'></tbody>
                <legend id='Vr0z3'><style id='Vr0z3'><dir id='Vr0z3'><q id='Vr0z3'></q></dir></style></legend>

                  <small id='Vr0z3'></small><noframes id='Vr0z3'>

                • 本文介绍了从多维数组中删除重复键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个相当大的数组,其中包含留言板上所有论坛的数据,不幸的是,我遇到了一个问题,我有一些键的重复条目.数组按父级按层次结构排序,这就是为什么它在某些点上会变深.

                  I have a rather large array that contains data for all of the forums on a message board, unfortunately I am running into an issue where I am having repeat entries for some keys. The array is ordered in an hierarchy by parents, which is why it gets deep at some points.

                  Array
                  (
                      [0] => Array
                          (
                              [cat_data] => Array()
                              [forum_data] => Array
                                  (
                                      [2] => Array
                                          (
                                              [subforums] => Array
                                                  (
                                                      [6] => Array
                                                          (
                                                              [subforums] => Array
                                                                  (
                                                                      [15] => Array()
                                                                      [16] => Array()
                                                                  )
                                                          )
                                                      [7] => Array()
                                                      [15] => Array()
                                                      [16] => Array()
                                                  )
                                          )
                                      [3] => Array()
                                  )
                          )
                  )
                  

                  论坛 id 6 上的子论坛作为论坛 id 2 的子论坛重复.我需要删除数组最低级别的重复键.所以在这个例子中,我想将 15 和 16 保留为 6 的子集,但将它们删除为 2 的子集.

                  The subforums on the forum id 6 are repeated as subforums for forum id 2. I need to remove the repeated keys that are in the lowest level of the array. So in this example, I would like to keep 15 and 16 as subs of 6 but remove them as subs of 2.

                  请注意,我正在为板子编写一个应用程序,我不是在生成数组,它是由板子生成的,这就是为什么在创建数组时我无法删除重复项.

                  Just a note, I am writing an application for the board, I am not generating the array, it is generated by the board, that is why I can't remove the duplicates while the array is being created.

                  感谢大家的帮助.

                  推荐答案

                  应该这样做:

                  function remove_dup_keys(array &$array) {
                      $keys = array();
                      foreach ($array as $key => &$value) {
                          if (is_array($value)) {
                              $keys = array_merge($keys, remove_dup_keys($value));
                          }
                      }
                  
                      foreach ($keys as $key) {
                          if (is_numeric($key) && in_array($key, $keys)) {
                              unset($array[$key]);
                          }
                      }
                  
                      $keys = array_merge($keys, array_keys($array));
                      return $keys;
                  }
                  
                  remove_dup_keys($yourarray);
                  

                  你得到:

                  Array
                  (
                      [0] => Array
                          (
                              [cat_data] => Array
                                  (
                                  )
                              [forum_data] => Array
                                  (
                                      [2] => Array
                                          (
                                              [subforums] => Array
                                                  (
                                                      [6] => Array
                                                          (
                                                              [subforums] => Array
                                                                  (
                                                                      [15] => Array
                                                                          (
                                                                          )
                                                                      [16] => Array
                                                                          (
                                                                          )
                                                                  )
                                                          )
                                                      [7] => Array
                                                          (
                                                          )
                                                  )
                                          )
                                      [3] => Array
                                          (
                                          )
                                  )
                          )
                  )
                  

                  这篇关于从多维数组中删除重复键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:查找所有具有相同值的数组键 下一篇:查找和替换数组中的重复项

                  相关文章

                • <tfoot id='gD8as'></tfoot>

                    <i id='gD8as'><tr id='gD8as'><dt id='gD8as'><q id='gD8as'><span id='gD8as'><b id='gD8as'><form id='gD8as'><ins id='gD8as'></ins><ul id='gD8as'></ul><sub id='gD8as'></sub></form><legend id='gD8as'></legend><bdo id='gD8as'><pre id='gD8as'><center id='gD8as'></center></pre></bdo></b><th id='gD8as'></th></span></q></dt></tr></i><div id='gD8as'><tfoot id='gD8as'></tfoot><dl id='gD8as'><fieldset id='gD8as'></fieldset></dl></div>

                        <bdo id='gD8as'></bdo><ul id='gD8as'></ul>
                      <legend id='gD8as'><style id='gD8as'><dir id='gD8as'><q id='gD8as'></q></dir></style></legend>

                    1. <small id='gD8as'></small><noframes id='gD8as'>