为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
30秒到达战场 2023-05-26 17:44:05
在 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如何?
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

有很多方法可以做到这一点,一种方法是使用多种方法if以及isset检查null 的条件,


$array = [];

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

{

    if(isset($mRecord[$i]['M4_M2'])){

        $array['a'] = $mRecord[$i]['M4_M2'];

    }

    if(isset($mRecord[$i]['M4_M3'])){

        $array['b'] = $mRecord[$i]['M4_M3'];

    }

    if(isset($mRecord[$i]['M4_Barcode'])){

        $array['c'] = $mRecord[$i]['M4_Barcode'];

    }

    $R[$i] =$array;

}


查看完整回答
反对 回复 2023-05-26
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

一些可能性:


之后删除:


{

$R[$i] = 

array (

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

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

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

  );

//unset if NULL

if($R[$i]['a'] === NULL) unset($R[$i]['a']);

}

或者


之后添加:


{

$R[$i] = 

array (

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

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

  );

//add if not NULL

if($mRecord[$i]['M4_M2'] !== NULL) $R[$i]['a'] = $mRecord[$i]['M4_M2'];

}


查看完整回答
反对 回复 2023-05-26
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

像这样的东西。如果要检查//是否存在且不为空,则需要使用isset 。您可以使用 simple但它会根据真实/虚假值进行评估。propertyvariableindexif


public 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;

    }

}




查看完整回答
反对 回复 2023-05-26
  • 3 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信