1

私はこのような配列構造を持っています:

Main-Array
(
    [0] => Sub-Array
    (
        [0] => AAA
        [1] => BBB
        [2] => -
        [3] => DDD
    )

    [1] => Sub-Array
    (
        [0] => 111
        [1] => 222
        [2] => -
        [3] => 444
    )
)

上記の例のように、Main-Array[0][2]とMain-Array[1][2]は両方とも空なので、配列からポップしたいと思います。

foreachループを実行し、要件に応じて新しい配列を割り当てることでそれを行うことを知っています。しかし、より良い方法や、私が知らないPHP配列関数がある場合は、提案を歓迎します。

4

4 に答える 4

2

unset($index); 配列からアイテムを削除するために使用してください

上記の場合、インデックスは変更されないことに注意してください。

そうしないと

array_splice()整数キーを正規化したい場合に使用できます。別のオプションはarray_values()unset()

于 2012-11-09T06:03:02.887 に答える
2
$array_fill = array(array('AAA','BBB','-','DDDD'), array(111,222,'-',444));
function clean_now($var)
{
    return $var == '-'? false: true;    
}

function cleanme($var)
{
    return array_filter($var, "clean_now"); 
}

print_r(array_map("cleanme",$array_fill));

これは2次元配列なので、最初array_mapに各配列内の配列をフィルター処理し、配列array_filterから削除するために使用します'-'

私のコードをコピーして、あなたの側で実行してみてください。変数値を追加しました。

于 2012-11-09T06:25:21.210 に答える
0
$a[]=array(DD,AA,'',1);
$a[]=array(mm,er,'',4);
foreach($a as $b)
{
    rsort($b);
    array_pop($b);
    $c[]=$b;
}
print_r($c);

両方とも空だと言ったので、これはそれを達成するための最も簡単な方法の1つであり、その後の出力は次のようになります。

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => DD
            [2] => AA
        )

    [1] => Array
        (
            [0] => 4
            [1] => mm
            [2] => er
        )

)
于 2012-11-09T09:13:12.450 に答える
0

試す

foreach ($main_arr as &$arr) {
  $arr = array_filter($arr);
}
于 2012-11-09T06:00:48.040 に答える