dongtun3328 2013-11-13 10:43
浏览 32

PHP - array_filter带引用或类似于它

I have an array like below.

$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)
          );

and applied filter like this.

$fa = array_filter($a, function ($item) {
    return ($item["count"] > 0);
});

then i applied usort on variable $fa. After that i loop through $fa and assigned some values, but they are not get reflected in variable $a.

something like below,

usort($fa, 'comp');

foreach ($fa as &$t) {
    $t["score"] = 120;
}

var_dump($a); //this doesn't contain "score" field.

So my questions is how to get filtered array with original array reference?

  • 写回答

1条回答 默认 最新

  • dsa1230000 2013-11-13 11:09
    关注

    array_filter returns a new array and not a reference, thats why any changes applied to $fa wont be reflected in $a.

    Instead of using array_filter you could use a foreach loop like this:

    foreach($a as &$t) {
        if($t['count'] > 0) {
            $t['score'] = 120;
        }
    }
    

    And then sort using usort.

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据