dsw8292301 2018-07-13 12:24
浏览 178
已采纳

检查对象数组中是否存在值

I am working on an API which receives a PHP object of $POST data. I am trying to check wether the 'smsPhoneNumber' inside customFields exists but not sure how to do this.

I am currently able to check for 'email' using:

if ( property_exists( $data, 'email' ) ) {
  return true;
}

Question: How to check if 'smsPhoneNumber' exists?

--

var_dump:

object(stdClass)[1515]
  public 'email' => string 'email@email.com'
  public 'customFields' => 
    array (size=2)
      0 => 
        object(stdClass)[1512]
          public 'name' => string 'Firstname'
          public 'value' => string 'james' 
      1 => 
        object(stdClass)[1514]
          public 'name' => string 'smsPhoneNumber'
          public 'value' => string '077'
  • 写回答

1条回答 默认 最新

  • doulipi3742 2018-07-13 12:29
    关注

    You could use an array_filter to get the custom field you want.

    $phoneFields = array_filter($data->customFields, function($field) {
        return $field->name === 'smsPhoneNumber';
    });
    

    This will only return objects in the array that have a name property equal to smsPhoneNumber.

    if (!count($phoneFields)) {
        // Phone not found
    }
    
    // or
    
    if ($phone = current($phoneFields)) {
        echo "The first phone number found is " . $phone->value;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳