avatar
filter array of objects by property value PHP

• Handling data using array_map() and in_array() methods:

$instructions = [
    ['id' => 131],
    ['id' => 132],
    ['id' => 133],
];

$instruction_ids = [
    ['id' => 169, 'instruction_id' => 131],
];

$idsToRemove = array_map(function ($item) {
    return $item['instruction_id'];
}, $instruction_ids);

$updatedInstructions = [];
foreach ($instructions as $instruction) {
    if (!in_array($instruction['id'], $idsToRemove)) {
        $updatedInstructions[] = $instruction;
    }
}

print_r($updatedInstructions);

• Handling data using array_filter() and array_column() methods:

$instructions = [
    ['id' => 131],
    ['id' => 132],
    ['id' => 133],
];

$instruction_ids = [
    ['id' => 169, 'instruction_id' => 131],
];

$idsToRemove = array_column($instruction_ids, 'instruction_id');

$updatedInstructions = array_filter($instructions, function ($instruction) use ($idsToRemove) {
    return !in_array($instruction['id'], $idsToRemove);
});

$updatedInstructions = array_values($updatedInstructions);

print_r($updatedInstructions);

• Handling data using array_map(), array_udiff() and array_values() methods:

$instructions = [
    ['id' => 131],
    ['id' => 132],
    ['id' => 133],
];

$instruction_ids = [
    ['id' => 169, 'instruction_id' => 131],
];

// Extract the instruction_id values from instruction_ids
$idsToRemove = array_map(function ($item) {
    return $item['instruction_id'];
}, $instruction_ids);

// Define a custom comparison function for array_udiff
function customComparison($a, $b) {
    return $a['id'] - $b;
}

// Use array_udiff to filter out objects with matching instruction_id values
$updatedInstructions = array_udiff($instructions, $idsToRemove, 'customComparison');

// Reindex the array if needed (optional)
$updatedInstructions = array_values($updatedInstructions);

print_r($updatedInstructions);
24
query list of user and filter cognito in lambda function filter list on search input change Javascript
You need to login to do this manipulation!