簡體   English   中英

取消多維數組中的數據

[英]Unset data in a multidimensional array

我有csv [] []。 如何為每個循環使用a來取消行中的數據設置?

for each ($index) {
if (conditions to meet) { 
unset(csv[$index]);     
}
}

嘗試這個 :

foreach ($csv as $key => $value) {
        unset($csv[$key]);
    }

http://docs.php.net/manual/en/control-structures.foreach.php說:

為了能夠直接在循環內修改數組元素,在$ value之前加&。 在這種情況下,值將通過引用分配。

這是在使用兩個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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM