blob: 490b5a4fa17577466eae50957b65ce73b49c4d25 (
plain) (
tree)
|
|
<?php
class ArrayUtil
{
/**
* Take an array of arrays, take given key from each sub-array and return
* new array with just those corresponding values.
* @param array $list
* @param string $key
* @return array
*/
public static function flattenByKey(array $list, string $key)
{
$ret = [];
foreach ($list as $item) {
if (array_key_exists($key, $item)) {
$ret[] = $item[$key];
}
}
return $ret;
}
/**
* Pass an array of arrays you want to merge. The keys of the outer array will become
* the inner keys of the resulting array, and vice versa.
* @param array $arrays
* @return array
*/
public static function mergeByKey(array $arrays)
{
$empty = array_combine(array_keys($arrays), array_fill(0, count($arrays), false));
$out = [];
foreach ($arrays as $subkey => $array) {
foreach ($array as $key => $item) {
if (!isset($out[$key])) {
$out[$key] = $empty;
}
$out[$key][$subkey] = $item;
}
}
return $out;
}
}
|