第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

過(guò)濾掉數(shù)組中所有實(shí)例的值為 0 的列

過(guò)濾掉數(shù)組中所有實(shí)例的值為 0 的列

PHP
HUX布斯 2022-07-09 09:45:02
我有一個(gè)這樣的二維數(shù)組:$input = array(    "Category 1" => array(        "Name 1" => array(            "value" => 1,            // ... other keys, doesn't matter        ),        "Name 2" => array(            "value" => 0,        ),        "Name 3" => array(            "value" => 0,        ),    ),    "Category 2" => array(        "Name 1" => array(            "value" => 8,        ),        "Name 2" => array(            "value" => 0,        ),        "Name 3" => array(            "value" => 12,        ),    ),);請(qǐng)注意,每個(gè)Category N都有相同的Name N鍵,只有value變化。我想過(guò)濾掉value=0每個(gè)維度中的條目,例如:$ouput = array(    "Category 1" => array(        "Name 1" => array(            "value" => 1,            // ... other keys, doesn't matter        ),        "Name 3" => array(            "value" => 0,        ),    ),    "Category 2" => array(        "Name 1" => array(            "value" => 8,        ),        "Name 3" => array(            "value" => 12,        ),    ),);Name 1 仍然是由于 value!=0 兩者Category NName 2由于 兩者中的value=0而被過(guò)濾掉Category NName 3 仍然是由于值= 12 inCategory 2我的第一個(gè)想法是使用array_intersect()。但由于$input是動(dòng)態(tài)的,我不知道它有多少維度(也不知道它們的名字)。也許我們可以將一個(gè)多維數(shù)組分解為每個(gè)維度的數(shù)組?我不確定這是最好的方法。每一個(gè)提示都值得贊賞。
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

我認(rèn)為這可以完成工作。基本上遍歷第一個(gè)類(lèi)別(因?yàn)樗鼈兌季哂邢嗤?Name 值)并提取每個(gè)特定 Name N 值的所有字段。如果這些值的總和為 0(如果您可能有負(fù)數(shù),還有其他類(lèi)似的方法),則刪除所有這些字段...


foreach ( current($input) as $name => $value ) {

    // Extract all values

    $nameValues = array_column(array_column($input, $name), "value");

    if ( array_sum($nameValues) == 0 )  {

        // remove values (use & to allow to modify values)

        foreach ( $input as &$categories )   {

            unset ($categories[$name]);

        }

    }

}

print_r($input);


查看完整回答
反對(duì) 回復(fù) 2022-07-09
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

使用遞歸函數(shù)瀏覽您的數(shù)組。


function Clean($input){

    if (is_array($input)){

        foreach($input as $key=>$value){

            $output=Clean($value);

            if ($output===null){

                return 0;

            }elseif($output==0){

                unset($input[$key]);

            }else{

                $input[$key]=$output;

            }

        }

        return $input;  

    }else{

        if ($input==0){

            return null;

        }else{

            return $input;

        }

    }

}

例子:


<?php


function Clean($input){

    if (is_array($input)){

        foreach($input as $key=>$value){

            $output=Clean($value);

            if ($output===null){

                return 0;

            }elseif($output==0){

                unset($input[$key]);

            }else{

                $input[$key]=$output;

            }

        }

        return $input;  

    }else{

        if ($input==0){

            return null;

        }else{

            return $input;

        }

    }

}


$input = array(

    "Category 1" => array(

        "Name 1" => array(

            "value" => 1,

            // ... other keys, doesn't matter

        ),

        "Name 2" => array(

            "value" => 0,

        ),

        "Name 3" => array(

            "value" => 0,

        ),

    ),

    "Category 2" => array(

        "Name 1" => array(

            "value" => 8,

        ),

        "Name 2" => array(

            "value" => 0,

        ),

        "Name 3" => array(

            "value" => 12,

        ),

    ),

);




echo "input:";

var_dump($input);


$output=Clean($input);


echo "output:";

var_dump($output);


//exit;


$input = array(

    "Name 1" => array(

        "value" => 1,

        // ... other keys, doesn't matter

    ),

    "Name 2" => array(

        "value" => 0,

    ),

    "Name 3" => array(

        "value" => 0,

    )

);


echo "input:";

var_dump($input);


$output=Clean($input);


echo "output:";

var_dump($output);


$input = array(

    "Category A" => array(

        "Cat B" => array(

            "Name 1" => array(

                "value" => 1,

                // ... other keys, doesn't matter

            ),

            "Name 2" => array(

                "value" => 0,

            ),

            "Name 3" => array(

                "value" => 0,

            )

        )

    )

);


echo "input:";

var_dump($input);


$output=Clean($input);


echo "output:";

var_dump($output);



?>

結(jié)果:


input:array(2) {

  ["Category 1"]=>

  array(3) {

    ["Name 1"]=>

    array(1) {

      ["value"]=>

      int(1)

    }

    ["Name 2"]=>

    array(1) {

      ["value"]=>

      int(0)

    }

    ["Name 3"]=>

    array(1) {

      ["value"]=>

      int(0)

    }

  }

  ["Category 2"]=>

  array(3) {

    ["Name 1"]=>

    array(1) {

      ["value"]=>

      int(8)

    }

    ["Name 2"]=>

    array(1) {

      ["value"]=>

      int(0)

    }

    ["Name 3"]=>

    array(1) {

      ["value"]=>

      int(12)

    }

  }

}

output:array(2) {

  ["Category 1"]=>

  array(1) {

    ["Name 1"]=>

    array(1) {

      ["value"]=>

      int(1)

    }

  }

  ["Category 2"]=>

  array(2) {

    ["Name 1"]=>

    array(1) {

      ["value"]=>

      int(8)

    }

    ["Name 3"]=>

    array(1) {

      ["value"]=>

      int(12)

    }

  }

}

input:array(3) {

  ["Name 1"]=>

  array(1) {

    ["value"]=>

    int(1)

  }

  ["Name 2"]=>

  array(1) {

    ["value"]=>

    int(0)

  }

  ["Name 3"]=>

  array(1) {

    ["value"]=>

    int(0)

  }

}

output:array(1) {

  ["Name 1"]=>

  array(1) {

    ["value"]=>

    int(1)

  }

}

input:array(1) {

  ["Category A"]=>

  array(1) {

    ["Cat B"]=>

    array(3) {

      ["Name 1"]=>

      array(1) {

        ["value"]=>

        int(1)

      }

      ["Name 2"]=>

      array(1) {

        ["value"]=>

        int(0)

      }

      ["Name 3"]=>

      array(1) {

        ["value"]=>

        int(0)

      }

    }

  }

}

output:array(1) {

  ["Category A"]=>

  array(1) {

    ["Cat B"]=>

    array(1) {

      ["Name 1"]=>

      array(1) {

        ["value"]=>

        int(1)

      }

    }

  }

}


查看完整回答
反對(duì) 回復(fù) 2022-07-09
  • 2 回答
  • 0 關(guān)注
  • 139 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)