user12708695
user12708695

Reputation: 47

If else condition to replace value in php

I had a php script to run the if else to replace the value based on condition:

//$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);

return: {"phone":"44234567","accountNumber":"01234567"}

my expected return if $mobile = '01234567'; will return {"phone":"44234567","accountNumber":""}

and $mobile = '23456701';will return {"phone":"23456701","accountNumber":"23456701"}

any one have suggestion?

Thanks

Upvotes: 0

Views: 383

Answers (2)

Nick
Nick

Reputation: 147206

You can use the $count parameter to preg_replace to see if a replacement was made (i.e. the $mobile value started with 01), and then use that to set the value of $accountNumber:

$phone = preg_replace($zero_lead, $country_code, $mobile, -1, $count);
$accountNumber = $count ? '' : $mobile;

Demo on 3v4l.org

Upvotes: 1

user1597430
user1597430

Reputation: 1146

PHP is not JS, so you can't use RegExp expressions in primitive functions such as strpos.

$mobile = '01234567';
$account = $mobile;
$country_code = '44';

if (substr($mobile, 0, 2) === '01')
{
    $account = '';
    $mobile = $country_code . substr($mobile, 2);
}

echo json_encode
([
    'phone' => $mobile,
    'accountNumber' => $account
]);

Upvotes: 1

Related Questions