如何在PHP中转换多维数组
我有多维数组,我想转换这个数组如何在PHP中转换多维数组,php,Php,我有多维数组,我想转换这个数组 Array ( [Tickets Open] => Array ( [01Oct-05Oct ] => 0 ) ) Array ( [Tickets Open] => Array ( [06Oct- 12Oct ] => 0 ) ) Array ( [Tickets Open] => Array ( [13Oct-19Oct ] => 1 ) ) Array ( [Tickets Open] =>
Array ( [Tickets Open] => Array (
[01Oct-05Oct ] => 0 )
)
Array ( [Tickets Open] => Array (
[06Oct- 12Oct ] => 0 )
)
Array ( [Tickets Open] => Array (
[13Oct-19Oct ] => 1 )
)
Array ( [Tickets Open] => Array (
[20Oct-26Oct ] => 18 )
)
Array ( [Tickets Open] => Array (
[27Oct-31Oct ] => 9 )
)
我想将上面的数组转换成下面定义的形式
Array ( [Tickets Open] => Array (
[01Oct-05Oct] => 0
[06Oct-12Oct] => 5
[13Oct-19Oct] => 1
[20Oct-26Oct] => 18
[27Oct-31Oct] => 9 )
)
下面是我的代码,我从中得到的数组显示在最上面
$year='2019';
$month = intval($month);
$month1 = date('M', mktime(0, 0, 0, $month, 10));
$end = date('t',mktime(0,0,0,$month,1,$year)); //last date day of month: 28 - 31
$start = date('w',mktime(0,0,0,$month,1,$year));
$last = 7 - $start;
$noweeks = ceil((($end - ($last + 1))/7) + 1);
$output = "";
$output1 = "";
$monthlabel = str_pad($month, 2, '0', STR_PAD_LEFT);
$monthlabell = str_pad($month1, 2, '0', STR_PAD_LEFT);
for($x=1;$x<$noweeks+1;$x++){
if($x == 1){
$startdate = "$year-$monthlabel-01";
$startdate1 = "01$monthlabell";
$day = $last - 6;
}else{
$day = $last + 1 + (($x-2)*7);
$day = str_pad($day, 2, '0', STR_PAD_LEFT);
$startdate = "$year-$monthlabel-$day";
$startdate1 = "$day$monthlabell";
}
if($x == $noweeks){
$enddate = "$year-$monthlabel-$end";
$enddate1 = "$end$monthlabell";
}else{
$dayend = $day + 6;
$dayend = str_pad($dayend, 2, '0', STR_PAD_LEFT);
$enddate = "$year-$monthlabel-$dayend";
$enddate1 = "$dayend$monthlabell";
}
$output .= "$startdate $enddate";
// echo $output;
$output1 = "$startdate1".'-'."$enddate1"." ";
$sql="SELECT COUNT(id) as id FROM `glpi_tickets` WHERE CAST(date AS DATE)
BETWEEN '$startdate' AND '$enddate' and status=6";
$reusult = $GLOBALS['conn']->query($sql);
$row = mysqli_fetch_assoc($reusult);
$queryresult=mysqli_num_rows($reusult);
$id=$row['id'];
$data =array(array(
'Tickets Open' => array(
$output1=>$id
)
));
}
$year='2019';
$month=intval($month);
$month1=日期('M',mktime(0,0,0,$month,10));
$end=日期('t',mktime(0,0,0,$month,1,$year))//月的最后日期:28-31
$start=日期('w',mktime(0,0,0,$month,1,$year));
$last=7-$start;
$noweeks=ceil(($end-($last+1))/7)+1;
$output=“”;
$output1=“”;
$monthlabel=str_pad($month,2,'0',str_pad_LEFT);
$monthlabell=str_pad($month1,2,'0',str_pad_左);
对于($x=1;$xquery($sql);
$row=mysqli\u fetch\u assoc($reusult);
$queryresult=mysqli\u num\u行($reusult);
$id=$row['id'];
$data=数组(数组)(
“票证打开”=>数组(
$output1=>$id
)
));
}
我不想一次又一次地重复“票打开”。
如果有任何解决方案,请指导我。
谢谢试试这个:
$output = array();
foreach ($array1 as $key => $value){
$output[] = (object)array_merge((array)$array2[$key], (array)$value);
}
这可能会有帮助
// Your input array
$array = array(
array('Tickets Open' => array('01Oct-05Oct' => 0)),
array('Tickets Open' => array('06Oct-12Oct' => 0)),
array('Tickets Open' => array('13Oct-19Oct' => 1)),
array('Tickets Open' => array('20Oct-26Oct' => 18)),
array('Tickets Open' => array('27Oct-31Oct' => 9)),
);
$arrColums = array_column($array, 'Tickets Open');
$result = [];
foreach ($arrColums as $key => $value) {
$result['Tickets Open'][key($value)] = $value[key($value)];
}
// result
Array
(
[Tickets Open] => Array
(
[01Oct-05Oct] => 0
[06Oct-12Oct] => 0
[13Oct-19Oct] => 1
[20Oct-26Oct] => 18
[27Oct-31Oct] => 9
)
)
看看下面;我在这里编辑了部分代码
$data = [];
for($x=1;$x<$noweeks+1;$x++) {
// Your code here
/* Instead of this
$data =array(array(
'Tickets Open' => array(
$output1=>$id
)
));
use below code
*/
$data['Tickets Open'][$output1] = $id;
}
$data=[];
对于($x=1;$x数组(
$output1=>$id
)
));
使用下面的代码
*/
$data['Tickets Open'][$output1]=$id;
}
这里的数组2是什么?要合并的其他数组。您可以指定多个阵列合并在一起。如下所示:数组合并(array1,array2,array3,…)是否按这种方式打印print\r($result);要获得我的输出?它向我显示这个数组()数组()数组()数组()数组([Tickets Open]=>Array([27Oct-31Oct]=>9)),我的输入数组和你的扫描有区别,你可以给你的数组输入数组([Tickets Open]=>Array([01Oct-05Oct]=>0))数组([Tickets Open]=>Array([06Oct-12Oct]=>0))数组([Tickets Open]=>Array([13Oct-19Oct]=>1)数组([Tickets Open]=>Array([20Oct-26Oct]=>18))数组([Tickets Open]=>Array([27Oct-31Oct]=>9))请在代码中添加一些解释,以便其他人可以从中学习
// $array = input array;
$final_array = array();
foreach ($array as $Tickets_Open) {
foreach ($Tickets_Open as $key => $value) {
$final_array['Tickets Open'][$key] = $value;
}
}
print_r($final_array);