public static function addColumn(array $array, array $column, $colName, $keyCol = null)
	{
		$result = array();

		foreach ($array as $i => $item)
		{
			$value = null;

			if (!isset($keyCol))
			{
				$value = static::getValue($column, $i);
			}
			else
			{
				// Convert object to array
				$subject = \is_object($item) ? static::fromObject($item) : $item;

				if (isset($subject[$keyCol]) && is_scalar($subject[$keyCol]))
				{
					$value = static::getValue($column, $subject[$keyCol]);
				}
			}

			// Add the column
			if (\is_object($item))
			{
				if (isset($colName))
				{
					$item->$colName = $value;
				}
			}
			else
			{
				if (isset($colName))
				{
					$item[$colName] = $value;
				}
				else
				{
					$item[] = $value;
				}
			}

			$result[$i] = $item;
		}

		return $result;
	}