【问题标题】:Merge two arrays based on key根据键合并两个数组
【发布时间】:2017-08-31 17:45:02
【问题描述】:

在尝试以下建议后更新,现在它给出了正确的效果,但多次输入。

您好,我有以下代码,它的作用是创建两个数组,然后将它们混合为一个:

$list_claimed_users = get_users('meta_key=claimed');

foreach ( $list_claimed_users  as $list_claimed_user ) {
   $a = get_user_meta($list_claimed_user->ID , "claimed");
   $nicknames[] = get_user_meta($list_claimed_user->ID , "nickname");
   $unserialized[] = unserialize($a[0]);

   foreach($unserialized as $key => &$metadata) array_push($metadata, $nicknames[$key]);

}
$claimed_array[] = $unserialized;

print_r($claimed_array);

但它现在循环并在每个循环的额外时间内添加 $a 数据

 Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 31.08.2016
                    [1] => prize8
                    [2] => Array
                        (
                            [0] => test5
                        )

                    [3] => Array
                        (
                            [0] => test5
                        )

                    [4] => Array
                        (
                            [0] => test5
                        )

                    [5] => Array
                        (
                            [0] => test5
                        )

                )

            [1] => Array
                (
                    [0] => 31.07.2017
                    [1] => prize7
                    [2] => Array
                        (
                            [0] => test6
                        )

                    [3] => Array
                        (
                            [0] => test6
                        )

                    [4] => Array
                        (
                            [0] => test6
                        )

                )

            [2] => Array
                (
                    [0] => 31.08.2017
                    [1] => prize5
                    [2] => Array
                        (
                            [0] => test7
                        )

                    [3] => Array
                        (
                            [0] => test7
                        )

                )

            [3] => Array
                (
                    [0] => 21.08.2017
                    [1] => prize6
                    [2] => Array
                        (
                            [0] => test8
                        )

                )

        )

)

如果在最初创建数组时有更简单的方法来实现这一点,任何人都可以建议将两者合并的最佳方法。

任何帮助将不胜感激

【问题讨论】:

标签: php arrays sorting multidimensional-array


【解决方案1】:

在检索昵称和元数据之后,但在将结果添加到$claimed_array 之前,您可以:

foreach($a as $key => &$metadata) array_push($metadata, $nicknames[$key]);

然后只需将$a 添加到$claimed_array:

$claimed_array[] = $a;

【讨论】:

  • 嘿,我按照上述执行了以下操作并得到以下错误:警告:array_push() 期望参数 1 是数组,但当我得到声称的元数据时,它没有在上面的帖子中提及,所以我正在反序列化它...我会更改上面的代码以显示
猜你喜欢
  • 2022-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多