Php 多维数组到单个

Php 多维数组到单个,php,Php,我有以下多维数组,我需要转换成单个数组 我尝试了array\u column和array\u shift,但没有给出完整的数据。我知道array_column可以将多维数组提供给单个数组,但在这种特定情况下,我没有得到结果。我试着按照这条路走,但没有成功 $result = []; array_walk_recursive($data, function($v, $k) use (&$result){ if ($k == 'month') $result[] = ['mont

我有以下多维数组,我需要转换成单个数组

我尝试了array\u column和array\u shift,但没有给出完整的数据。我知道array_column可以将多维数组提供给单个数组,但在这种特定情况下,我没有得到结果。我试着按照这条路走,但没有成功

$result = [];
array_walk_recursive($data, function($v, $k) use (&$result){  
    if ($k == 'month') $result[] = ['month'=> $v];
    if ($k == 'Total_Monthly_Tickets') {
        $result[count($result)-1]['Total_Monthly_Tickets'] = $v;
    }
});
我的原始数组$data

预期产量


不能有多个同名键。PHP将在重复键[0]=>12月和[0]=>11月失败

但是,您可以将月份作为键,将票证金额作为值

<?php
$input = [
    ['month' => 'January', 'Total_Monthly_Tickets' => 0],
    ['month' => 'February', 'Total_Monthly_Tickets' => 7],
    ['month' => 'March', 'Total_Monthly_Tickets' => 5],
    ['month' => 'April', 'Total_Monthly_Tickets' => 0],
    ['month' => 'May', 'Total_Monthly_Tickets' => 0],
    ['month' => 'June', 'Total_Monthly_Tickets' => 0],
    ['month' => 'July', 'Total_Monthly_Tickets' => 0],
    ['month' => 'August', 'Total_Monthly_Tickets' => 0],
    ['month' => 'September', 'Total_Monthly_Tickets' => 0],
    ['month' => 'October', 'Total_Monthly_Tickets' => 0],
    ['month' => 'November', 'Total_Monthly_Tickets' => 0],
    ['month' => 'December', 'Total_Monthly_Tickets' => 0]
];

$output = [];
foreach ($input as $item) {
    $output[$item['month']] = $item['Total_Monthly_Tickets'];
}

那么您实际上想要什么样的结果结构呢?您不能完全展平它,因为数组不能有重复的键。正如其他人已经指出的那样,请指定使用此代码试图实现的目标。
Array
(
    [0] => December
    [7] => February
    [5] => March
     ----
     --
     ---
)
<?php
$input = [
    ['month' => 'January', 'Total_Monthly_Tickets' => 0],
    ['month' => 'February', 'Total_Monthly_Tickets' => 7],
    ['month' => 'March', 'Total_Monthly_Tickets' => 5],
    ['month' => 'April', 'Total_Monthly_Tickets' => 0],
    ['month' => 'May', 'Total_Monthly_Tickets' => 0],
    ['month' => 'June', 'Total_Monthly_Tickets' => 0],
    ['month' => 'July', 'Total_Monthly_Tickets' => 0],
    ['month' => 'August', 'Total_Monthly_Tickets' => 0],
    ['month' => 'September', 'Total_Monthly_Tickets' => 0],
    ['month' => 'October', 'Total_Monthly_Tickets' => 0],
    ['month' => 'November', 'Total_Monthly_Tickets' => 0],
    ['month' => 'December', 'Total_Monthly_Tickets' => 0]
];

$output = [];
foreach ($input as $item) {
    $output[$item['month']] = $item['Total_Monthly_Tickets'];
}
array(12) {
  ["January"]=>
  int(0)
  ["February"]=>
  int(7)
  ["March"]=>
  int(5)
  ["April"]=>
  int(0)
  ["May"]=>
  int(0)
  ["June"]=>
  int(0)
  ["July"]=>
  int(0)
  ["August"]=>
  int(0)
  ["September"]=>
  int(0)
  ["October"]=>
  int(0)
  ["November"]=>
  int(0)
  ["December"]=>
  int(0)
}