从关联数组中删除键值对

Remove key - value pairs from associative array

我有一个查询 returns 一个关联数组。在那个数组中是我必须在输出之前删除的字段。我试过 array_diff 并取消设置,但没有任何运气。

起始数组:

Array
(
  [id] => 13461
  [ln] => 605717
  [ptyp] => COND
  [lag] => 86484
  [st] => S
  [lp] => 475000
  [sp] => 475000
  [olp] => 475000
  [hsn] => 2033
)

我需要删除 3 个项目,每个实例的值都不同(键相同)。这是我试过的,但输出不是我要找的。

    $result = array( ['id'] => '13461', ['ln'] => '605717', ['ptyp'] => 'COND', ['lag'] => '86484', ['st'] => 'S', ['lp'] => '475000', ['sp'] => '475000', ['olp'] => '475000', ['hsn'] => '2033');
    while ($row = $result) {

        // remove empty values
        $filtered = array_filter($row);

        // array of disallowed keys
        $disallowed = array($row['lp'],$row['lph'],$row['olp']);
        foreach ($filtered as $filter) {
            # code...
            unset($disallowed);
        }
            echo "<pre>";
            print_r ($filter);
            echo "</pre>";

    }

编辑:我的 $disallowed 数组中的项目不一定出现在每一行中,但如果出现,则必须将其删除。

希望我理解正确。我只会删除键符合您要求的元素。

$result = array( ['id'] => '13461', ['ln'] => '605717', ['ptyp'] => 'COND', ['lag'] => '86484', ['st'] => 'S', ['lp'] => '475000', ['sp'] => '475000', ['olp'] => '475000', ['hsn'] => '2033');
    while ($row = $result) {    
        // remove empty values
        $filtered = array_filter($row);    
        // define an array of disallowed keys
        $disallowed = array('lp','lph','olp');
        foreach ($disallowed as $disallowed_key) {
            // code...
            unset($row["$disallowed_key"]); // remove the element which key is not allowed
        }
        echo "<pre>";
        print_r ($row); // output the final result with all disallowed elements removed
        echo "</pre>";

    }