PHP-带有引用或类似引用的数组_过滤器
我有一个如下的数组PHP-带有引用或类似引用的数组_过滤器,php,Php,我有一个如下的数组 $a = array( array("id" => 1, "name" => "njx", "count" => 0), array("id" => 2, "name" => "peter", "count" => 4), array("id" => 3, "name" => "jeffry", "count" => 2), a
$a = array(
array("id" => 1, "name" => "njx", "count" => 0),
array("id" => 2, "name" => "peter", "count" => 4),
array("id" => 3, "name" => "jeffry", "count" => 2),
array("id" => 4, "name" => "adam", "count" => 6)
);
然后应用这样的过滤器
$fa = array_filter($a, function ($item) {
return ($item["count"] > 0);
});
然后我对变量$fa
应用了usort
。之后,我通过$fa
循环并分配了一些值,但它们不会反映在变量$a
中
像下面这样
usort($fa, 'comp');
foreach ($fa as &$t) {
$t["score"] = 120;
}
var_dump($a); //this doesn't contain "score" field.
因此,我的问题是如何使用原始数组引用获取筛选数组?数组\u筛选器返回一个新数组而不是引用,这就是为什么应用于$fa的任何更改都不会反映在$a中的原因 您可以使用如下foreach循环,而不是使用array_filter:
foreach($a as &$t) {
if($t['count'] > 0) {
$t['score'] = 120;
}
}
然后使用usort进行排序。使用$a=array\u filter($a,…否)。然后我将丢失计数<0的项目。我需要它们。如果您显示所需的输出片段,其他人将更容易理解。只要array\u filter将保留键,您就可以执行
foreach($faKey=>dummy)$a[$faKey]['score']=120;
因此它需要在$fa
上进行另一个循环,并根据id
检查分配分数
?我不能获得仍保留对$a?
引用的筛选数组吗