2012-04-22 10 views
0

これは私の2D配列形式です。私は最初の配列を削除したい。PHPで2D配列をシフトする方法

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [type] => section-open 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [type] => section-close 
       ) 

     ) 

) 

私はそれが...

+0

ええ、ループを使用できますか? –

答えて

2

あなたはおそらく、私は配列の最初のレベルを取り除くが、2番目のレベルのすべての項目を保つことない機能を作った本当の2Dシフトをしたいので。ここで

は実施例である:

http://codepad.org/H7iaTI1E

と機能:

/** 
* Removes first level in an array, returning the 2nd level elements as an array 
* @param array Array to process 
* @return 2nd level items from the given array 
*/ 
function array2dshift(array $array) { 
    $res = array(); 

    foreach($array as $lvl1) { 
     foreach($lvl1 as $item) { 
      $res[] = $item; 
     } 
    } 

    return $res; 
} 
+0

これは私が欲しいものです... – Mifas

+0

@ sg3sこれは再帰関数ではありません。 – Ikke

+0

@Ikeあなたが正しいと思うので、私はそれを変更しました。 – sg3s

6

更新を働いていないarray_shift機能を試してみました、すべての内部配列を削除して、この

Array 
(
    [0] => Array 
     (
      [type] => section-open 
     ) 

    [1] => Array 
     (
      [type] => section-close 
     ) 

) 

のようにそれを返したい:これは例に基づいていましたユーザーは与えてくれましたが、複数の要素を持つ配列では動作することを期待していました。

array_shift()は、配列の最初の要素を削除しますが、これは必要ではありません。

あなた自身でビルドする必要があります。

ような何か:

$result = array(); 
foreach($my_array as $element) 
{ 
    $result[]=$element[0]; 
} 
+0

@Ikeその2番目のレベルに複数のアイテムがあると、コードが爆発します。 – sg3s

+0

@lkkeいいえ、間違っています。 – Mifas

+0

これは@mifasが与えた例に基づいています。 – Ikke

関連する問題