如何在PHP中删除数组括号?

时间:2017-09-18 05:45:33

标签: php arrays

下面有一个数组-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 []之前,有什么办法可以删除最外面的数组()吗?任何帮助都将受到高度赞赏。

2 个答案:

答案 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