删除空值key-val对在关联数组中调整顺序

时间:2016-10-03 06:50:36

标签: php arrays

我有这个数组

[1] => Array
    (
        [Assembly required] => Yes
        [Max load (kg)] => 120
        [Product weight (kg)] => 
        [Warranty (years)] => 3
        [Height adjustable] => Yes
        [Lumbar support] => 
        [Back tilt adjustment] => Yes
        [Seat tilt adjustment] => Yes
        [Chair height range (mm)] => 880 - 950
        [Chair seat width (mm)] => 500
        [Chair seat depth (mm)] => 480
        [Chair back height (mm)] => 410
        [Chair back width (mm)] => 420
        [Seat height range (mm)] => 440 - 580
        [AFRDI Approved] => 
        [Optional adjustable arms] => Yes
        [image] => https://cdn.shopify.com/s/files/1/1249/7859/files/Chair.png?18135080827462508830
    )

上面数组的var_dump是

         [1]=>
      array(17) {
        ["Assembly required"]=>
        string(3) "Yes"
        ["Max load (kg)"]=>
        string(3) "120"
        ["Product weight (kg)"]=>
        string(0) ""
        ["Warranty (years)"]=>
        string(1) "3"
        ["Height adjustable"]=>
        string(3) "Yes"
        ["Lumbar support"]=>
        string(0) ""
        ["Back tilt adjustment"]=>
        string(3) "Yes"
        ["Seat tilt adjustment"]=>
        string(3) "Yes"
        ["Chair height range (mm)"]=>
        string(9) "880 - 950"
        ["Chair seat width (mm)"]=>
        string(3) "500"
        ["Chair seat depth (mm)"]=>
        string(3) "480"
        ["Chair back height (mm)"]=>
        string(3) "410"
        ["Chair back width (mm)"]=>
        string(3) "420"
        ["Seat height range (mm)"]=>
        string(9) "440 - 580"
        ["AFRDI Approved"]=>
        string(0) ""
        ["Optional adjustable arms"]=>
        string(3) "Yes"
        ["image"]=>
        string(80) "https://cdn.shopify.com/s/files/1/1249/7859/files/Chair.png?18135080827462508830"
      }

我想从上面删除空白值对。

  foreach($singlearr as $key=>$value){      
         if(is_null($value) || $value == '')
             unset($singlearr[$key]);
    }

此删除的键值对的值为null 但它按顺序扭曲了序列

    [1] => Array
    (
        [Assembly required] => Yes
        [Max load (kg)] => 120
        [Warranty (years)] => 3
        [Height adjustable] => Yes
        [Back tilt adjustment] => Yes
        [Chair height range (mm)] => 880 - 950
        [Chair seat width (mm)] => 500
        [Chair seat depth (mm)] => 480
        [Chair back height (mm)] => 410
        [Chair back width (mm)] => 420
        [Seat height range (mm)] => 440 - 580
        [image] => https://cdn.shopify.com/s/files/1/1249/7859/files/Chair.png?18135080827462508830
        [Seat tilt adjustment] => Yes
        [Optional adjustable arms] => Yes
    )

结果数组var_dump form:

          [1]=>
      array(14) {
        ["Assembly required"]=>
        string(3) "Yes"
        ["Max load (kg)"]=>
        string(3) "120"
        ["Warranty (years)"]=>
        string(1) "3"
        ["Height adjustable"]=>
        string(3) "Yes"
        ["Back tilt adjustment"]=>
        string(3) "Yes"
        ["Chair height range (mm)"]=>
        string(9) "880 - 950"
        ["Chair seat width (mm)"]=>
        string(3) "500"
        ["Chair seat depth (mm)"]=>
        string(3) "480"
        ["Chair back height (mm)"]=>
        string(3) "410"
        ["Chair back width (mm)"]=>
        string(3) "420"
        ["Seat height range (mm)"]=>
        string(9) "440 - 580"
        ["image"]=>
        string(80) "https://cdn.shopify.com/s/files/1/1249/7859/files/Chair.png?18135080827462508830"
        ["Seat tilt adjustment"]=>
        string(3) "Yes"
        ["Optional adjustable arms"]=>
        string(3) "Yes"
      }

例如。在上面的结果数组中,[image]向上移动,就像这样。

1 个答案:

答案 0 :(得分:3)

你可以使用

  

array_filter()

它会过滤掉数组中的所有空值和空值。

official documentation