我有csv [] []。如何在每个循环中使用a来取消行中的数据?
SimpleDateFormat oldTime = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat newTime = new SimpleDateFormat("hh:mm:ss a");
String stringTime;
try {
String reformattedStr = newTime.format(oldTime.parse(stringTime));
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
试试这个:
foreach ($csv as $key => $value) {
unset($csv[$key]);
}
答案 1 :(得分:0)
http://docs.php.net/manual/en/control-structures.foreach.php说:
为了能够直接修改循环内的数组元素,在$ value之前加上&amp ;.在这种情况下,该值将由reference指定。
在使用两个foreach循环时,您应该使用什么来修改行的单个元素。
<?php
$csv = [
[1,2,3,4,5],
[2,3,4,5,6],
[3,4,5,6,7],
[4,5,6,7,8],
];
// make $row a reference
// so that unset($row[...]) affects $csv and not only a "copy".
foreach( $csv as &$row ) {
foreach( $row as $key=>$column ) {
if ( 0===$column%2 ) { // e.g. remove all even elements
unset( $row[$key] );
}
}
}
var_export($csv);
打印
array (
0 =>
array (
0 => 1,
2 => 3,
4 => 5,
),
1 =>
array (
1 => 3,
3 => 5,
),
2 =>
array (
0 => 3,
2 => 5,
4 => 7,
),
3 =>
array (
1 => 5,
3 => 7,
),
)
或者(相同的输出)没有foreach循环。
<?php
$csv = [
[1,2,3,4,5],
[2,3,4,5,6],
[3,4,5,6,7],
[4,5,6,7,8],
];
$csv = array_map(
function($row) {
return array_filter(
$row,
function($col) {
return 0!==$col%2;
}
);
},
$csv
);
var_export($csv);