Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 给定一个数组,如何去掉子字符串;GB";从每个值?_Php_Arrays_Substring - Fatal编程技术网

Php 给定一个数组,如何去掉子字符串;GB";从每个值?

Php 给定一个数组,如何去掉子字符串;GB";从每个值?,php,arrays,substring,Php,Arrays,Substring,我的数组中的每个项都是一个大约5个值的数组。。其中一些是以“GB”结尾的数字。。我需要相同的阵列,但去掉“GB”,以便只保留数字 所以我需要遍历整个数组,在每个子数组上取每个值,从中去掉字符串“GB”,并从输出中创建一个新数组 有人能推荐一种高效的方法吗?您可以创建自己的自定义函数来迭代数组的值,检查子字符串GB是否存在,如果存在,请将其删除。使用该函数,可以将原始数组和函数传递到 这实际上使用新字符串保持了原始数组的完整性。(注意,和$vv,这意味着我通过引用获取变量,这意味着循环中对$vv的

我的数组中的每个项都是一个大约5个值的数组。。其中一些是以“GB”结尾的数字。。我需要相同的阵列,但去掉“GB”,以便只保留数字

所以我需要遍历整个数组,在每个子数组上取每个值,从中去掉字符串“GB”,并从输出中创建一个新数组


有人能推荐一种高效的方法吗?

您可以创建自己的自定义函数来迭代数组的值,检查子字符串
GB
是否存在,如果存在,请将其删除。使用该函数,可以将原始数组和函数传递到

这实际上使用新字符串保持了原始数组的完整性。(注意,
和$vv
,这意味着我通过引用获取变量,这意味着循环中对
$vv
的任何更改都将影响实际字符串,而不是通过复制)

您可以使用以下方法:

array_walk_recursive($arr, 'strip_text', 'GB');

function strip_text(&$value, $key, $string) {
  $value = str_replace($string, '', $value);
}
这比通过引用(正确地)遍历带有值的数组要简单得多

// i only did the subarray part
$diskSizes = array("500", "300 GB", "200", "120 GB", "130GB");
$newArray = array();

foreach ($diskSizes as $diskSize) {
    $newArray[] = str_replace('GB', '', $diskSize);


}

// look at the new array
print_r($newArray);
array_walk_recursive($arr, 'strip_text', 'GB');

function strip_text(&$value, $key, $string) {
  $value = str_replace($string, '', $value);
}