array_zip" nativo$numbers = [1, 2];
$letters = ['a', 'b', 'c'];
array_zip($numbers, $letters);
// [[1, 'a'], [2, 'b'], [null, 'c']]
function array_zip(array ...$arrays): array
{
if (empty($arrays)) {
return [];
}
$minLength = min(array_map('count', $arrays));
$result = [];
for ($i = 0; $i < $minLength; $i++) {
$tuple = [];
foreach ($arrays as $array) {
$tuple[] = $array[$i];
}
$result[] = $tuple;
}
return $result;
}
function array_zip(...$arrays): array
{
return array_map(null, ...$arrays);
}
array_map agrupar
os arrays em tuplas, em vez de transformá-los
array_compact" nativo$items = [1, 2, 3, null, false, '', 0, []];
array_compact($items);
// [1, 2, 3]
function array_compact(array $array): array
{
return array_filter(
$array,
fn ($item) => !empty($item)
);
}
function array_compact(array $array): array
{
return array_filter($array, null);
}
function array_compact(array $array): array
{
return array_filter($array);
}
array_filter já é
null por padrão
associativo$people = [
['id' => 1, 'name' => 'Alan'],
['id' => 2, 'name' => 'Bia'],
['id' => 3, 'name' => 'Carlos'],
];
as_assoc($people, 'id');
// [
// 1 => ['id' => 1, 'name' => 'Alan'],
// 2 => ['id' => 2, 'name' => 'Bia'],
// 3 => ['id' => 3, 'name' => 'Carlos'],
// ]
$hashed = [];
foreach ($people as $person) {
$hashed[$person['id']] = $person;
}
function as_assoc(array $list, string|int $key): array
{
return array_column($list, null, $key);
}
as_assoc($people, 'id');