0

配列項目を値で削除したいのですが。キーは指定できません。これが配列です。配列を値、数値の降順で並べ替えました。

Array
(
    [this] => 15
    [that] => 10
    [other] => 9
    [random] => 8
    [keys] => 4
)

値が10未満のすべてのアイテムの設定を解除したい場合はどうすればよいですか?

4

4 に答える 4

4

array_filter次の関数を使用します。

$a = array_filter($a, function($x) { return !($x < 10); });
于 2012-09-20T19:08:44.650 に答える
0
foreach($array as $key => $value)
  if( $value < 10 )
    unset($array[$key])
于 2012-09-20T19:08:54.567 に答える
0

すべての値がintであると仮定します。

for (i=9;i>=0;i--)
{
    while (array_search($i, $assocArray) !== false)
    {
        unset($assocArray[array_search($i, $assocArray)]);
    }
}

これを行うにはおそらくもっとエレガントな方法がありますが、熱は私の脳をしっかりとつかんでいます:)

knittlの答えは正しいですが、古いバージョンのPHPを使用している場合は、無名関数を使用できません。次のようにしてください。

function filterFunc($v)
{
    return $v >= 10;
}
$yourArray = array_filter($yourArray,'filterFunc');

Knittlへのクレジット

于 2012-09-20T19:09:36.400 に答える
0
$test = array(
    "this" => 15,
    "that" => 10,
    "other" => 9,
    "random" => 8,
    "keys" => 4
);

echo "pre: ";print_r($test);
pre: Array ( [this] => 15 [that] => 10 [other] => 9 [random] => 8 [keys] => 4 )

次のコードを実行します。

foreach($test AS $key => $value) {
    if($value <= 10) {
        unset($test[$key]);
    }
}

結果は次のとおりです。

echo "post: ";print_r($test);
post: Array ( [this] => 15 ) 
于 2012-09-20T19:12:06.863 に答える