配列項目を値で削除したいのですが。キーは指定できません。これが配列です。配列を値、数値の降順で並べ替えました。
Array
(
[this] => 15
[that] => 10
[other] => 9
[random] => 8
[keys] => 4
)
値が10未満のすべてのアイテムの設定を解除したい場合はどうすればよいですか?
配列項目を値で削除したいのですが。キーは指定できません。これが配列です。配列を値、数値の降順で並べ替えました。
Array
(
[this] => 15
[that] => 10
[other] => 9
[random] => 8
[keys] => 4
)
値が10未満のすべてのアイテムの設定を解除したい場合はどうすればよいですか?
array_filter
次の関数を使用します。
$a = array_filter($a, function($x) { return !($x < 10); });
foreach($array as $key => $value)
if( $value < 10 )
unset($array[$key])
すべての値が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へのクレジット
$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 )