3v4l.org

run code in 300+ PHP versions simultaneously
<?php function array_transpose(array|object $object_or_array): array|object { $levelOneType = gettype($object_or_array); if (!in_array($levelOneType, ['array', 'object'])) { throw new Exception("Error: array_transpose() expects parameter 1 to be an array or object, $levelOneType given"); } $result = []; foreach ($object_or_array as $rowKey => $row) { $levelTwoType = gettype($row); if (!in_array($levelTwoType, ['array', 'object'])) { throw new Exception("Error: array_transpose() expects parameter 1 to contain rows of arrays or objects, $levelTwoType given"); } foreach ($row as $columnKey => $value) { $result[$columnKey][$rowKey] = $value; } } return $result; } $names = ['Anne', 'Burt', 'Chad', 'Dawn']; $ages = [18, 22, 20, 21]; $pets = ['dog', 'cat', 'fish', 'bird']; var_export(array_transpose(compact(['names', 'ages', 'pets'])));

preferences:
26.25 ms | 405 KiB | 5 Q