note 119973 added to function.array-column
| From: | CarlosGranados | Date: | Fri, 30 Sep 2016 15:41:09 +0000 |
| Subject: | note 119973 added to function.array-column | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-206713@lists.php.net to get a copy of this message | ||
Here's a neat little snippet for filtering a set of records based on a the value of a column:
<?php
function dictionaryFilterList(array $source, array $data, string $column) : array
{
$new = array_column($data, $column);
$keep = array_diff($new, $source);
return array_intersect_key($data, $keep);
}
// Usage:
$users = [
['first_name' => 'Jed', 'last_name' => 'Lopez'],
['first_name' => 'Carlos', 'last_name' =>
'Granados'],
['first_name' => 'Dirty', 'last_name' => 'Diana'],
['first_name' => 'John', 'last_name' => 'Williams'],
['first_name' => 'Betty', 'last_name' => 'Boop'],
['first_name' => 'Dan', 'last_name' => 'Daniels'],
['first_name' => 'Britt', 'last_name' => 'Anderson'],
['first_name' => 'Will', 'last_name' => 'Smith'],
['first_name' => 'Magic', 'last_name' => 'Johnson'],
];
var_dump(dictionaryFilterList(['Dirty', 'Dan'], $users,
'first_name'));
// Outputs:
[
['first_name' => 'Jed', 'last_name' => 'Lopez'],
['first_name' => 'Carlos', 'last_name' =>
'Granados'],
['first_name' => 'John', 'last_name' => 'Williams'],
['first_name' => 'Betty', 'last_name' => 'Boop'],
['first_name' => 'Britt', 'last_name' => 'Anderson'],
['first_name' => 'Will', 'last_name' => 'Smith'],
['first_name' => 'Magic', 'last_name' => 'Johnson']
]
?>
----
Server IP: 72.52.91.14
Probable Submitter: 68.194.230.53
----
Manual Page -- http://php.net/manual/en/function.array-column.php
Edit -- https://master.php.net/note/edit/119973
Del: integrated -- https://master.php.net/note/delete/119973/integrated
Del: useless -- https://master.php.net/note/delete/119973/useless
Del: bad code -- https://master.php.net/note/delete/119973/bad+code
Del: spam -- https://master.php.net/note/delete/119973/spam
Del: non-english -- https://master.php.net/note/delete/119973/non-english
Del: in docs -- https://master.php.net/note/delete/119973/in+docs
Del: other reasons-- https://master.php.net/note/delete/119973
Reject -- https://master.php.net/note/reject/119973
Search -- https://master.php.net/manage/user-notes.php