查找代码可以从数组中删除字符并仅显示数字。
array(
1=>123456 hello; / &,
2=>128767 ^% * ! ajsdb,
3=>765678 </ hello echo.,
);
我想删除数组中的floowing
hello; / &
^% * ! ajsdb
</ hello echo.
并希望保持原样
array(
1=>123456,
2=>128767,
3=>765678,
);
谢谢和亲切的问候,
答案 0 :(得分:13)
您想使用preg_replace将所有非数字字符替换为''
$arr = array(
1 => "1234 perr & *",
2 => "3456 hsdsd 3434"
);
foreach($arr as &$item) {
$item = preg_replace('/\D/', '', $item);
}
var_dump($arr);
结果
array(2) { [1]=> string(4) "1234" [2]=> &string(8) "34563434" }
答案 1 :(得分:2)
创建for语句以获取数组的值并尝试:
foreach($arr as $value){
$cleansedstring = remove_non_numeric($value);
echo $cleansedstring;
}
function remove_non_numeric($string) {
return preg_replace('/\D/', '', $string)
}
答案 2 :(得分:2)
<?php
// Set array
$array = array(
1 => "123456 hello; / &",
2 => "128767 ^% * ! ajsdb",
3 => "765678 </ hello echo.",
);
// Loop through $array
foreach($array as $key => $item){
// Set $array[$key] to value of $item with non-numeric values removed
// (Setting $item will not change $array, so $array[$key] is set instead)
$array[$key] = preg_replace('/[^0-9]+/', '', $item);
}
// Check results
print_r($array);
?>
答案 3 :(得分:1)
function number_only($str){
$slength = strlen($str);
$returnVal = null;
for($i=0;$i<$slength;$i++){
if(is_numeric($str[$i])){
$returnVal .=$str[$i];
}
}
return $returnVal;
}
答案 4 :(得分:0)
您应该使用preg_replace
[0-9]+
答案 5 :(得分:0)
$values = array(
1=>"123456 hello; / &",
2=>"128767 ^% * ! ajsdb",
3=>"765678 </ hello echo",
);
$number_values = array();
foreach($values as $value) {
$pieces = explode(' ', $value);
$numbers = array_filter($pieces, function($value) {
return is_numeric($value);
});
if(count($numbers) > 0)
{
$number_values[] = current($numbers);
}
}
print_r($number_values);
答案 6 :(得分:0)
我建议你看一下intval方法(http://php.net/manual/en/function.intval.php)和foreach循环(http://php.net/manual/en /control-structures.foreach.php)。
通过组合这两个功能,您可以清除非数字字符中的所有元素
答案 7 :(得分:0)
为什么不array_walk()
? http://php.net/manual/en/function.array-walk.php
$arr = array(
1 => "1234 perr & *",
2 => "3456 hsdsd 3434"
);
array_walk($arr, function(&$item) {
$item = preg_replace('/\D/', '', $item);
});
print_r($arr);
结果:
Array
(
[1] => 1234
[2] => 34563434
)
在线查看: http://sandbox.onlinephpfunctions.com/code/d63d07e58f9ed6984f96eb0075955c7b36509f81