0

次の多次元配列構造があります。

array
  '2012-10-02' => 
     array
       0 => 
        array
          'item1' => 
            array
              ...

   '2012-10-03' => 
     array
       0 => 
         array
           'item1' => 
             array
               ...

構造が次のようになるように、アイテム配列をアンラップするにはどうすればよいですか。

array
  '2012-10-02' => 
     array
       'item1' => 
          array
           ...
   '2012-10-03' => 
      array
        'item1' => 
          array
            ...
4

3 に答える 3

3

配列を繰り返し処理し、アイテムごとに、以前$item[0]の場所に「昇格」する必要$itemがあります。したがって、たとえば:

foreach($input as &$element) {  // by reference!
    $element = $element[0];
}

// not strictly required, but prevents you from accidentally messing with
// $element outside of the loop (which would almost certainly be a bug)
unset($element);
于 2012-10-01T13:26:11.637 に答える
0

array_map最初の要素を返すためにを使用してみてください

$array = array("2012-10-02" => array(array("item1"=>array())),"2012-10-03" => array(array("item1"=>array())));

#before
var_dump($array);

$array = array_map(function($var) {return $var[0];} , $array);

#after
var_dump($array);

array
  '2012-10-02' => 
    array
      0 => 
        array
          'item1' => 
            array
              ...
  '2012-10-03' => 
    array
      0 => 
        array
          'item1' => 
            array
              ...

array
  '2012-10-02' => 
    array
      'item1' => 
        array
          empty
  '2012-10-03' => 
    array
      'item1' => 
        array
          empty
于 2012-10-01T13:29:51.983 に答える