Php 删除包含特定字符串的未设置数组
我已从CSV导入以下阵列: 排列 ( [0]=>阵列 ( [0]=>季度统计数据;2011年第一季度;2011年第二季度;2011年第三季度;2011年第四季度;2012年第一季度;2012年第二季度;2012年第三季度;2012年第四季度;2013年第一季度;2013年第二季度;2013年第三季度;2013年第四季度;2014年第一季度 ) 所以 我想去掉所有包含“%and TOTAL”的数组 我想循环并取消匹配案例: $remove=“总计”; foreach($csv作为$key=>$value){ } } 这是我得到的错误: 警告:in_array()要求参数2为数组,给定null 我的PHP版本5.3.10 您是这样做的,还是使用数组过滤器 我在论坛上浏览了2个小时,但是我找不到任何帮助我的提示 干杯。对你来说:Php 删除包含特定字符串的未设置数组,php,multidimensional-array,Php,Multidimensional Array,我已从CSV导入以下阵列: 排列 ( [0]=>阵列 ( [0]=>季度统计数据;2011年第一季度;2011年第二季度;2011年第三季度;2011年第四季度;2012年第一季度;2012年第二季度;2012年第三季度;2012年第四季度;2013年第一季度;2013年第二季度;2013年第三季度;2013年第四季度;2014年第一季度 ) 所以 我想去掉所有包含“%and TOTAL”的数组 我想循环并取消匹配案例: $remove=“总计”; foreach($csv作为$key=>$va
foreach ($csv as $subArray)
{
for ($i = 0, $len = count($subArray); $i < $len; $i++)
{
if (strpos($subArray[$i], $remove) !== false)
unset($subArray[$i])
}
}
foreach($csv作为$subArray)
{
对于($i=0,$len=count($subArray);$i<$len;$i++)
{
if(strpos($subArray[$i],$remove)!==false)
未设置($subArray[$i])
}
}
评论:
您可以通过
preg\u replace
尝试删除TOTAL
和%
。如果要从数组中删除元素,请使用unset
&最后使用array\u filter
删除null
元素
$newArr = array();
foreach($arr as $key=>$value){
foreach($value as $k=>$v){
$newArr[$key][$k] = preg_replace('/(TOTAL)|(%)/', '', $v); //for removing TOTAL & %
unset($arr[$key][$k]); //for unset the array elements that contains TOTAL & %
}
}
//Output by replacement
print '<pre>';
print_r($newArr);
print '</pre>';
//output after using unset
print '<pre>';
print_r(array_filter($arr));
print '</pre>';
$newArr=array();
foreach($arr作为$key=>$value){
foreach($k=>v的值){
$newArr[$key][$k]=preg_replace(“/(总计)()/”,“,$v);//用于删除总计&%
unset($arr[$key][$k]);//用于取消设置包含总计的数组元素&%
}
}
//替换输出
打印“”;
印刷费($newArr);
打印“”;
//使用unset后的输出
打印“”;
打印(数组过滤器($arr));
打印“”;
替换输出
打印“”;
印刷费($newArr);
打印“”;
使用unset后的输出
打印“”;
打印(数组过滤器($arr));
打印“”;
我确实创建了与从CSV导入的完全相同的数组。
未设置未设置数组2,3,4,该数组包含总计和%。
unset不取消数组2,3,4的设置,其中包含TOTAL和%。警告:array_filter()要求参数1为数组,其中的null为打印中的数组(array_filter($arr));$newArr=$csv;foreach($arr as$key=>$value){foreach($k=>$v){$newArr[$k]=preg_replace('/(TOTAL)|(%/'),''$v)//用于删除未设置的总数和%($arr[$key][$k]);//用于通过替换打印“”取消设置包含总计&%}//输出的数组元素;打印($newArr);打印“”;//使用取消设置打印“”后的输出;打印($arr)数组过滤器;打印“”;我的PHP版本有问题吗?我的版本是5.3.0,我想你误解了。$arr
是原始的array
。在阅读CSV
文件后分配$arr
。array\u filter()
需要一个array
。可能会给你一个null
值。
foreach ($csv as $subArray)
{
for ($i = 0, $len = count($subArray); $i < $len; $i++)
{
if (strpos($subArray[$i], $remove) !== false)
unset($subArray[$i])
}
}
$newArr = array();
foreach($arr as $key=>$value){
foreach($value as $k=>$v){
$newArr[$key][$k] = preg_replace('/(TOTAL)|(%)/', '', $v); //for removing TOTAL & %
unset($arr[$key][$k]); //for unset the array elements that contains TOTAL & %
}
}
//Output by replacement
print '<pre>';
print_r($newArr);
print '</pre>';
//output after using unset
print '<pre>';
print_r(array_filter($arr));
print '</pre>';
$arr[][] = ("QUARTERLY STATS;Q1/2011;Q2/2011;Q3/2011;Q4/2011;Q1/2012;Q2/2012;Q3/2012;Q4/2012;Q1/2013;Q2/2013;Q3/2013;Q4/2013;Q1/2014");
$arr[][] = ("January;7500;8800;9500;10000;10500;11000;11500;12000;12500;13000;13420;13820;14200");
$arr[] = array(";;17","30%;8%;5","30%;5%;4","80%;4","50%;4","30%;4","20%;4%;3","20%;3%;2","70%");
$arr[][] = ("TOTAL;7500;8500;9500;11000;12500;11400;11800;13000;12500;13000;13420;13820;14200");
$arr[] = array("30%;7","95%;5","26%;5%;4","76%;4","55%;4","35%;4","17%;4%;3","23%;2","98%;2","75%");
$newArr = array();
foreach($arr as $key=>$value) {
foreach($value as $k=>$v) {
$newArr[$key][$k] = preg_replace('/(TOTAL)|(%)/', '', $v); //for removing TOTAL & %
unset($arr[$key][$k]); //for unset the array elements that contains TOTAL & %
}
unset($arr[$key]); // IT does not unset ARR[2] ARR[3] and ARR[4] containing TOTAL & %
}
print '<pre>';
print_r($newArr);
print '</pre>';
print '<pre>';
print_r(array_filter($arr));
print '</pre>';