从关联数组中删除键值对
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>";
}
我有一个查询 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>";
}