Biến chuỗi thành mảng và biến mảng thành chuỗi được ngăn cách bởi dấu phẩy "," [hay comma] trong PHP thì làm như thế nào? [How to transform array to comma separated words string, or string with comma to array?]
Tôi có mảng như thế này:
Array
[
[0] => lorem
[1] => ipsum
[2] => dolor
[3] => sit
[4] => amet
]
Yêu cầu sử dụng PHP để biến mảng trên[array] thành chuỗi [string] có dạng như sau:
$string = 'lorem, ipsum, dolor, sit, amet';
Để giải quyết vấn đề này trong PHP ta dùng hàm implode :
$arr = array [ 0 => "lorem", 1 => "ipsum", 2 => "dolor"];
$str = implode [", ", $arr];
Ngược lại vấn đề tôi có 1 chuỗi[string], yêu cầu sử dụng PHP để biến chuỗi đó thành mảng [array]
$string = 'lorem, ipsum, dolor, sit, amet';
Để giải quyết vấn đề này trong PHP ta dùng hàm explode :
$string = 'lorem, ipsum, dolor, sit, amet';
$arr= explode [", ", $string];
Chúc các bạn thành công!
In PHP, I have an array of variables that are ALL strings. Some of the values stored are numeric strings with commas.
Nội dung chính
- How to remove comma from numbers in php?
- How do you remove the comma at the end of a string?
- How do I remove a comma from a string in Excel?
What I need:
A way to trim the commas from strings, and ONLY do this for numeric strings. This isn't as straightforward as it looks. The main reason is that the following fails:
$a = "1,435";
if[is_numeric[$a]]
$a = str_replace[',', '', $a];
This fails because $a = "1435"
is numeric. But $a = "1,435"
is not numeric. Because some of the strings I get will be regular sentences with commas, I can't run a string replace on every string.
asked Feb 17, 2012 at 20:24
user1082428user1082428
1,0213 gold badges12 silver badges14 bronze badges
1
Do it the other way around:
$a = "1,435";
$b = str_replace[ ',', '', $a ];
if[ is_numeric[ $b ] ] {
$a = $b;
}
answered Feb 17, 2012 at 20:29
1
The easiest would be:
$var = intval[preg_replace['/[^\d.]/', '', $var]];
or if you need float:
$var = floatval[preg_replace['/[^\d.]/', '', $var]];
answered Apr 7, 2015 at 17:24
JayelaJayela
3451 gold badge4 silver badges7 bronze badges
2
Not tested, but probably something like if[preg_match["/^[0-9,]+$/", $a]] $a = str_replace[...]
answered Feb 17, 2012 at 20:28
KenaniahKenaniah
5,12323 silver badges27 bronze badges
3
It sounds like the ideal solution for what you're looking for is filter_var[]
:
$a = filter_var[$a, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND];
[Note that it's using FILTER_VALIDATE_FLOAT instead of FILTER_VALIDATE_INT because that one doesn't currently have a FILTER_FLAG_ALLOW_THOUSAND option].
answered Aug 26, 2019 at 22:02
orrdorrd
8,8794 gold badges36 silver badges30 bronze badges
0
Try this .this worked for me
number_format[1235.369,2,'.','']
if you use number_format like this number_format[1235.369,2]
answer will be 1,235.37
but if you use like below
number_format[1235.369,2,'.','']
answer will be 1235.37
it's removing the "," of "1,235.37"
Meloman
3,2143 gold badges39 silver badges44 bronze badges
answered Sep 6, 2017 at 6:20
kaushikaushi
1531 silver badge5 bronze badges
1
function cleanData[$a] {
if[is_numeric[$a]] {
$a = preg_replace['/[^0-9,]/s', '', $a];
}
return $a;
}
answered Feb 17, 2012 at 20:30
RyanRyan
14.1k8 gold badges60 silver badges102 bronze badges
1
If you want to remove commas from numbers inside a string that also contains words, the easiest way I think would be to use preg_replace_callback:
Example:
$str = "Hey hello, I've got 12,500 kudos for you, spend it well"
function cleannr[$matches]
{
return str_replace["," , "" , $matches["nrs"]];
}
$str = preg_replace_callback ["/[?P[0-9]+,[0-9]+]/" , "cleannr" , $str];
Output:
"Hey hello, I've got 12500 kudos for you, spend it well"
In this case the pattern [regex] differs from the one given in the accepted answer since we don't want to remove the other commas [punctuation].
If we'd use /[0-9,]+/
here instead of /[0-9]+,[0-9]+/
the output would be:
"Hey hello I've got 12500 kudos for you spend it well"
answered Sep 6, 2017 at 19:11
FlaxiousFlaxious
1011 silver badge3 bronze badges
How about this:
/**
* This will parse the money string
*
* For example 1, 234, 456.00 will be converted to 123456.00
*
* @return
*/
function parseMoney[string $money] : float
{
$money = preg_replace['/[ ,]+/', '', $money];
return number_format[[float] $money, 2, '.', ''];
}
Example;
parseMoney['-1, 100, 000.01']; //-1100000.01
answered Jul 16 at 20:16
Emeka MbahEmeka Mbah
15.7k8 gold badges71 silver badges93 bronze badges
How to remove comma from numbers in php?
remove comma in numeric in php.
$var = 18,542.00;.
$var = intval[preg_replace['/[^\d. ]/', '', $var]];.
result :- 18542;.
or if you need float..
$var = floatval[preg_replace['/[^\d. ]/', '', $var]];.
result :- 18542.00;.
How do you remove the comma at the end of a string?
Using the substring[] method We remove the last comma of a string by using the built-in substring[] method with first argument 0 and second argument string. length[]-1 in Java. Slicing starts from index 0 and ends before last index that is string. length[]-1 .
How do I remove a comma from a string in Excel?
Remove comma from Text String.
Select the dataset..
Click the Home tab..
In the Editing group, click on the Find & Replace option..
Click on Replace. This will open the Find and Replace dialog box..
In the 'Find what:' field, enter , [a comma].
Leave the 'Replace with:' field empty. ... .
Click on Replace All button..