下面有一个数组-given,其中包含数组indice(s)。我想删除最外面的数组括号 - 在我的JSON数据中添加一个额外的方括号。我尝试通过$ aaray [0],$ array [1]来减少一个括号....但我对这个解决方案不满意,因为我必须运行一个额外的for循环来扰乱我的外部foreach循环。
$value['ranges'] =
array(
array(
'monthindex' => $numOfmonths,
'laps' => $value['recurring_by'],
'start' => "a1",
'end' => "a2",
),
array(
'monthindex' => $numOfmonths,
'laps' => $value['recurring_by'],
'start' => "b1",
'end' => "b2",
)
);
// $numOfmonths--;
$monthItems[] = $value;
如果您想查看print_r()格式,请进一步说明。
[ranges] => Array
(
[0] => Array
(
[monthindex] => 3
[laps] => 2
[start] => a1
[end] => a2
)
[1] => Array
(
[monthindex] => 3
[laps] => 2
[start] => b1
[end] => b2
)
)
)
在将$ value分配给$ monthItems []之前,有什么办法可以删除最外面的数组()吗?任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
$value['ranges']
只能有一个值。
目前,该值是一个数组。该数组包含两个值。
如果删除了该数组,则只能将这两个值中的一个指定给$value['ranges']
。
因此,如果不删除它所拥有的两个值中的一个,则无法删除外部数组。
答案 1 :(得分:0)
<?php
$ary['ranges'][] = ['monthindex'=>3, 'laps'=>2, 'start'=>'a1', 'end'=>'a2'];
$ary['ranges'][] = ['monthindex'=>3, 'laps'=>2, 'start'=>'b1', 'end'=>'b2', 'test'=>['a'=>['b'=>1]]];
function deep_scan_array( $ary, $count=0 ) {
if(is_array($ary)) {
foreach($ary as $key=>$item){
if(is_array($item)){
echo str_repeat("\t", $count);
echo "[$key] => array\n";
deep_scan_array($item, $count+1);
}else{
echo str_repeat("\t", $count);
echo "[$key]=>$item\n";
}
}
}
}
echo '<pre>';
print_r($ary);
deep_scan_array($ary);
输出:
[ranges] => array
[0] => array
[monthindex]=>3
[laps]=>2
[start]=>a1
[end]=>a2
[1] => array
[monthindex]=>3
[laps]=>2
[start]=>b1
[end]=>b2
[test] => array
[a] => array
[b]=>1