我想按值刪除數組項。密鑰不能被指定。這是數組。我已經按數值降序排列了數組。按值取消設置關聯數組
Array
(
[this] => 15
[that] => 10
[other] => 9
[random] => 8
[keys] => 4
)
如果我想取消設置的值小於10的所有項目。我該怎麼做?
我想按值刪除數組項。密鑰不能被指定。這是數組。我已經按數值降序排列了數組。按值取消設置關聯數組
Array
(
[this] => 15
[that] => 10
[other] => 9
[random] => 8
[keys] => 4
)
如果我想取消設置的值小於10的所有項目。我該怎麼做?
$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)
使用array_filter
功能:
$a = array_filter($a, function($x) { return !($x < 10); });
foreach($array as $key => $value)
if($value < 10)
unset($array[$key])
如何引用一個值會產生任何影響的值? –
你是對的,必須有一個腦筋 – JvdBerg
假定所有的值是整型:
for (i=9;i>=0;i--)
{
while (array_search($i, $assocArray) !== false)
{
unset($assocArray[array_search($i, $assocArray)]);
}
}
有可能這樣做的更優雅的方式,但發燒上有一個堅定的抓地力我的大腦:)
knittl的答案是正確的,但如果您使用的是舊版本的PHP ,你可以」 T使用匿名函數,只是做:
function filterFunc($v)
{
return $v >= 10;
}
$yourArray = array_filter($yourArray,'filterFunc');
感謝Knittl
http://php.net/manual/en/function.array-filter.php –
這只是一維數組。 – knittl