0

こんにちは、これは私の 2D 配列形式です。配列内の1番目を削除したい。

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

        )

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

        )

)

配列内のすべてを削除して、このように返したい

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

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

)

関数を試してみましたが、うまくいきarray_shiftません...

4

2 に答える 2

6

更新:これはユーザーが提供した例に基づいていましたが、複数の要素を持つ配列で機能することを期待していました。

array_shift()配列の最初の要素を削除しますが、それはあなたが望むものではありません。

自分で何かを構築する必要があります。

何かのようなもの:

$result = array();
foreach($my_array as $element)
{
    $result[]=$element[0];
}
于 2012-04-22T07:07:25.203 に答える
2

おそらく実際の2Dシフトが必要なため、配列の最初のレベルを削除し、すべてのアイテムを2番目のレベルに保持する関数を作成しました。

実例は次のとおりです。

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;
}
于 2012-04-22T08:22:53.707 に答える