php - 如果其他条件替换php中的值
问题描述
我有一个 php 脚本来运行 if else 以根据条件替换值:
//$mobile = '23456701';
$mobile = '01234567';
$zero_lead = "/^01/";
$country_code = "44";
$phone = preg_replace($zero_lead, $country_code, $mobile);
if (strpos($phone, '/^0/') !== true) {
$accountNumber = $mobile;
}
else
{
$accountNumber = '';
}
$post_data = array(
'phone' => $phone,
'accountNumber' => $accountNumber,
);
echo json_encode($post_data);
返回:{"phone":"44234567","accountNumber":"01234567"}
我的预期回报如果$mobile = '01234567';
会回来{"phone":"44234567","accountNumber":""}
并将$mobile = '23456701';
返回{"phone":"23456701","accountNumber":"23456701"}
有人有建议吗?
谢谢
解决方案
您可以使用该$count
参数来preg_replace
查看是否进行了替换(即以$mobile
开头的值01
),然后使用它来设置 的值$accountNumber
:
$phone = preg_replace($zero_lead, $country_code, $mobile, -1, $count);
$accountNumber = $count ? '' : $mobile;
推荐阅读
- sql - Postgis+Postgresql:如果集合 A 中的任意点在任意点形式集合 B 的 r-neighborhood 中
- php - 功能无法加载有很多关系数据 laravel Model Eloquent
- android - 从 FirebaseMessagingService 扩展 onStartCommand()
- html - 如何使用 DITA-OT 3.0.4 覆盖 html5 转换中的默认 css?
- c# - 是否可以从另一个应用程序检查空闲应用程序?
- gremlin - Datastax 中的 Gremlin count() 查询太慢
- dart - 如何将回调传递给另一个 StatefulWidget?
- c - 遇到 srand 错误,想知道是否有其他方法可以改进此代码
- powershell - 为什么我的 powershell Base64 字符串被截断为 36 个字符?
- javascript - 排序 Dropzone.js