如果元素为null,则不会将其添加到关键字array() 的数组中,如何?

在 PHP 中,我有以下函数:


 public function GenerateJSONOutOfArray_M4($mRecord) 

        {

            try

            {

                $mRecordLength = sizeof($mRecord);            


                $R = array();

                for($i = 0; $i < $mRecordLength; $i++)

                {

                    $R[$i] = 

                    array (

                    'a' => $mRecord[$i]['M4_M2'],

                    'b' => $mRecord[$i]['M4_M3'],

                    'c' => $mRecord[$i]['M4_Barcode'],

                    );

                }


                $result =

                array (

                  'J' => 

                        $R

                );


                $json = json_encode($result);


                return $json;                

            }

            catch (Exception $e)

            {

                return FALSE;

            }

        }                          

我需要如果$mRecord[$i]['M4_M2']为 null 那么 'a' 不会被添加到数组

中 换句话说,我的意思是 array() 不包括 'a' 如果 'a' 的值为null

如何?


30秒到达战场
浏览 177回答 3
3回答

繁花不似锦

有很多方法可以做到这一点,一种方法是使用多种方法if以及isset检查null 的条件,$array = [];for($i = 0; $i < $mRecordLength; $i++){&nbsp; &nbsp; if(isset($mRecord[$i]['M4_M2'])){&nbsp; &nbsp; &nbsp; &nbsp; $array['a'] = $mRecord[$i]['M4_M2'];&nbsp; &nbsp; }&nbsp; &nbsp; if(isset($mRecord[$i]['M4_M3'])){&nbsp; &nbsp; &nbsp; &nbsp; $array['b'] = $mRecord[$i]['M4_M3'];&nbsp; &nbsp; }&nbsp; &nbsp; if(isset($mRecord[$i]['M4_Barcode'])){&nbsp; &nbsp; &nbsp; &nbsp; $array['c'] = $mRecord[$i]['M4_Barcode'];&nbsp; &nbsp; }&nbsp; &nbsp; $R[$i] =$array;}

qq_花开花谢_0

一些可能性:之后删除:{$R[$i] =&nbsp;array (&nbsp; 'a' => $mRecord[$i]['M4_M2'],&nbsp; 'b' => $mRecord[$i]['M4_M3'],&nbsp; 'c' => $mRecord[$i]['M4_Barcode'],&nbsp; );//unset if NULLif($R[$i]['a'] === NULL) unset($R[$i]['a']);}或者之后添加:{$R[$i] =&nbsp;array (&nbsp; 'b' => $mRecord[$i]['M4_M3'],&nbsp; 'c' => $mRecord[$i]['M4_Barcode'],&nbsp; );//add if not NULLif($mRecord[$i]['M4_M2'] !== NULL) $R[$i]['a'] = $mRecord[$i]['M4_M2'];}

米琪卡哇伊

像这样的东西。如果要检查//是否存在且不为空,则需要使用isset 。您可以使用 simple但它会根据真实/虚假值进行评估。propertyvariableindexifpublic function GenerateJSONOutOfArray_M4($mRecord){    try {        $mRecordLength = sizeof($mRecord);        $R = array();        for ($i = 0; $i < $mRecordLength; $i++) {            $R[$i] = [];            if (isset($mRecord[$i]['M4_M2']))                $R[$i]['a'] = $mRecord[$i]['M4_M2'];            if (isset($mRecord[$i]['M4_M3']))                $R[$i]['b'] = $mRecord[$i]['M4_M3'];            if (isset($mRecord[$i]['M4_Barcode']))                $R[$i]['c'] = $mRecord[$i]['M4_Barcode'];        }        $result = array('J' => $R);        $json = json_encode($result);        return $json;    } catch (Exception $e) {        return FALSE;    }}
打开App,查看更多内容
随时随地看视频慕课网APP