Php 从整数小于3的数组中删除所有元素
我需要删除Php 从整数小于3的数组中删除所有元素,php,arrays,filter,Php,Arrays,Filter,我需要删除FacetValueCount低于3的所有元素 我该怎么做 这是我的数组:数组名是$farben array(8) { [0]=> array(2) { ["FacetValueName"]=> string(4) "Blau" ["FacetValueCount"]=> int(5) } [1]=> array(2) { ["FacetValueName"]=> string(7) "S
FacetValueCount
低于3
的所有元素
我该怎么做
这是我的数组:数组名是$farben
array(8) {
[0]=>
array(2) {
["FacetValueName"]=>
string(4) "Blau"
["FacetValueCount"]=>
int(5)
}
[1]=>
array(2) {
["FacetValueName"]=>
string(7) "Schwarz"
["FacetValueCount"]=>
int(3)
}
[2]=>
array(2) {
["FacetValueName"]=>
string(4) "blue"
["FacetValueCount"]=>
int(2)
}
[3]=>
array(2) {
["FacetValueName"]=>
string(4) "Grau"
["FacetValueCount"]=>
int(1)
}
}
试试这个
这里可能有用,$key和row是什么?抱歉,im初学者
$key
是数组的索引,数组“keys/index”。$行
包含数组索引的值。。。这里是另一个数组$row
。这样写foreach
时,“自动”工作。所以键是“array”?不,它在第一个“循环”中是[0]
,然后是[1][2][3]
好的,修复了。。。行前面缺少$
谢谢。。。但小于3<代码><3
请不要将>3
更改为<3
来编辑此答案<3
在这里是错误的,>3
不是理想的,但这要由作者来纠正。array\u filter
的第二个参数应该是一个谓词,它告诉每个元素应该被接受(当谓词返回truthy时)还是被过滤掉(当谓词返回falsy时),如下所示:$farben=array_filter($farben,function($each){return$each['FacetValueCount']>=3;})
<?php
$farben = ARRAY();
$farben[] = array('FacetValueName'=>'Blau', 'FacetValueCount' => 5);
$farben[] = array('FacetValueName'=>'Schwarz', 'FacetValueCount' => 3);
$farben[] = array('FacetValueName'=>'blue', 'FacetValueCount' => 2);
$farben[] = array('FacetValueName'=>'Grau', 'FacetValueCount' => 1);
print '<pre>'; var_dump($farben); print '</pre>';
foreach ($farben AS $key => $row) {
if ($row['FacetValueCount'] < 3) { unset($farben[$key]); }
}
print '<pre>'; var_dump($farben); print '</pre>';
?>
$farben = array_filter($farben, function($row) {
if($row["FacetValueCount"] > 3) {
return $row;
}
});