Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 合并数组键值_Php_Arrays_Wordpress - Fatal编程技术网

Php 合并数组键值

Php 合并数组键值,php,arrays,wordpress,Php,Arrays,Wordpress,我有一个数组结构,其中包含一个锦标赛玩家的ID: array ( 0 => array ( 0 => array ( 'player' => 7, 'gol' => 1, ), 1 => array ( 'player' => 9, 'gol' => 1, ), ), 1 => array

我有一个数组结构,其中包含一个锦标赛玩家的ID:

array (
  0 => 
   array (
     0 => 
       array (
        'player' => 7,
        'gol' => 1,
       ),
     1 => 
       array (
        'player' => 9,
        'gol' => 1,
    ),
 ),
 1 => 
   array (
    0 => 
      array (
        'player' => 10,
        'gol' => 1,
      ),
    1 => 
      array (
        'player' => 9,
        'gol' => 1,
     ),
  ),
),
此数组有一些重复项('player')。我希望生成一个不包含重复玩家的数组,结果将是每个玩家每个目标的总和,例如:

 array(
     0 => 
       array (
        'player' => 7,
        'gol' => 1,
       ),
     1 => 
       array (
        'player' => 9,
        'gol' => 2,
      ),
     2 => 
       array (
        'player' => 10,
        'gol' => 1,
      ),
 ),
这是我的代码:

if ($query->have_posts()) {
    $players = [];
    while ($query->have_posts()) {
        $query->the_post();

        if (have_rows('field_name', $id)):
           while (have_rows('field_name', $id)) : the_row();
           $tmp = [];
           $player = get_sub_field('player_name', $id);
           $tmp['player'] = $player['ID'];
           $tmp['gol'] = get_sub_field('player_goal', $id);
           array_push($players, $tmp);
    }
}
输出

Array
(
    [9] => 2
    [10] => 1
    [7] => 1
)
输出

Array
(
    [9] => 2
    [10] => 1
    [7] => 1
)
天真的方式(我从FAEWZX答案中获取样本):

输出:

Array
(
    [0] => Array
        (
            [player] => 7
            [gol] => 1
        )

    [1] => Array
        (
            [player] => 9
            [gol] => 2
        )

    [2] => Array
        (
            [player] => 10
            [gol] => 1
        )
)
天真的方式(我从FAEWZX答案中获取样本):

输出:

Array
(
    [0] => Array
        (
            [player] => 7
            [gol] => 1
        )

    [1] => Array
        (
            [player] => 9
            [gol] => 2
        )

    [2] => Array
        (
            [player] => 10
            [gol] => 1
        )
)

为什么不在查询中使用SUM和GROUP BY运算符?为什么不在查询中使用SUM和GROUP BY运算符?使用arsort不起作用。结构是:数组(0=>array('player'=>11,'gol'=>2,),1=>array('player'=>10,'gol'=>1,),2=>array('player'=>6,'gol'=>4',)@mariobros然后需要一个usort函数,比如
usort('player,function($a,$b){return$b['gol']$a['gol'];)
Edit:
操作符将在7.0+版本的PHP上工作,因此如果您仍在5.6中,请尝试按照手册操作。*您可以使用数组按值排序编辑答案吗?使用arsort不起作用。结构是:数组(0=>array('player'=>11,'gol'=>2,),1=>array('player'=>10,'gol'=>1,),2=>array('player'=>6,'gol'=>4',)@mariobros然后需要一个usort函数,如
usort($player,function($a,$b){return$b['gol']$a['gol'];}
Edit:
操作符将在7.0+版本的PHP上工作,因此如果您仍在5.6中,请尝试按照手册操作。*您可以使用数组顺序值编辑答案吗?