Php 多维数组到单个
我有以下多维数组,我需要转换成单个数组 我尝试了array\u column和array\u shift,但没有给出完整的数据。我知道array_column可以将多维数组提供给单个数组,但在这种特定情况下,我没有得到结果。我试着按照这条路走,但没有成功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
$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)
}