剪切数组 PHP 中的所有字符串


Cut all Strings within Array PHP

我想切割数组中的所有字符串。我一直在尝试使用array_walk但无法完全理解。有没有一个简单的PHP函数来做到这一点?

此数组

{ 
[0]=> string(22) ""price":"292.67000000"" 
[1]=> string(22) ""price":"292.67000000"" 
[2]=> string(22) ""price":"292.75000000"" 
[3]=> string(22) ""price":"292.76000000""
}

成为

{ 
[0]=> 292.67000000 
[1]=> 292.67000000 
[2]=> 292.75000000 
[3]=> 292.76000000
}

代码当前:

<?php
$filename = file_get_contents('idfilebuy2015-03-12.txt');
$array = explode(",", $filename);
sort($array);
array_walk(chop($array);
array_walk(substr($array, 31);
var_dump($array);
?>

很抱歉响应缓慢。正在发生的事情是我有一个文本数据文件,我正在读取PHP中的数组。文本文件中的每一行都将进入数组中的不同值。我想剪切数组中的值,以便我只有一个数字来进行计算。现在我有整个字符串。

这应该适合您:

(在这里,我只是用array_map()遍历每个数组元素。然后我用 preg_match_all() 从每个数组元素中获取浮点数)

<?php
    $arr = [
        '"price":"292.67000000"', 
        '"price":"292.67000000"',
        '"price":"292.75000000"',
        '"price":"292.76000000"',
    ];
    $arr = array_map(function($v){
        preg_match_all("/('d+'.'d+)/", $v, $m);
        return $m[0][0];
    }, $arr);
    print_r($arr);
?>

输出:

Array ( [0] => 292.67000000 [1] => 292.67000000 [2] => 292.75000000 [3] => 292.76000000 )
可能还有

许多其他方法可以做到这一点。 使这变得棘手的是字符串中嵌入字符串字符 ("),这使得许多函数和内置转换技术不起作用。

这是一种不需要使用正则表达式的方法:

<?php
$prices = array('"price":"292.67000000"', '"price":"292.67000000"');
function f(&$item, $key) {
    $t = explode(':', $item);
    $item = trim($t[1], '"');
}
array_walk($prices, 'f');
print_r($prices);

返回:

Array
(
    [0] => 292.67000000
    [1] => 292.67000000
)