protected function filterAttributes( array $attributeKeys )
	{
		$filtered = array_intersect_key( $this->args, array_flip( $attributeKeys ));

		// normalize truthy boolean attributes
		foreach( $filtered as $key => $value ) {
			if( !in_array( $key, self::BOOLEAN_ATTRIBUTES ))continue;

			if( $value !== false ) {
				$filtered[ $key ] = '';
				continue;
			}

			unset( $filtered[ $key ] );
		}

		$filteredKeys = array_filter( array_keys( $filtered ), function( $key ) use ( $filtered ) {
			return !(
				empty( $filtered[ $key ] )
				&& !is_numeric( $filtered[ $key ] )
				&& !in_array( $key, self::BOOLEAN_ATTRIBUTES )
			);
		});

		return array_intersect_key( $filtered, array_flip( $filteredKeys ));
	}
protected function filterAttributes( array $attributeKeys )
	{
		$filtered = array_intersect_key( $this->args, array_flip( $attributeKeys ));

		// normalize truthy boolean attributes
		foreach( $filtered as $key => $value ) {
			if( !in_array( $key, self::BOOLEAN_ATTRIBUTES ))continue;

			if( $value !== false ) {
				$filtered[ $key ] = '';
				continue;
			}

			unset( $filtered[ $key ] );
		}

		$filteredKeys = array_filter( array_keys( $filtered ), function( $key ) use ( $filtered ) {
			return !(
				empty( $filtered[ $key ] )
				&& !is_numeric( $filtered[ $key ] )
				&& !in_array( $key, self::BOOLEAN_ATTRIBUTES )
			);
		});

		return array_intersect_key( $filtered, array_flip( $filteredKeys ));
	}
protected function filterAttributes ( array $ attributeKeys ) { $ filtered = array_intersect_key ( $ this -> args , array_flip ( $ attributeKeys ) ) ; // normalize truthy boolean attributes foreach ( $ filtered as $ key => $ value ) { if ( ! in_array ( $ key , self :: BOOLEAN_ATTRIBUTES ) ) continue ; if ( $ value !== false ) { $ filtered [ $ key ] = '' ; continue ; } unset ( $ filtered [ $ key ] ) ; } $ filteredKeys = array_filter ( array_keys ( $ filtered ) , function ( $ key ) use ( $ filtered ) { return ! ( empty ( $ filtered [ $ key ] ) && ! is_numeric ( $ filtered [ $ key ] ) && ! in_array ( $ key , self :: BOOLEAN_ATTRIBUTES ) ) ; } ) ; return array_intersect_key ( $ filtered , array_flip ( $ filteredKeys ) ) ; }
Filter attributes by the provided attrribute keys and remove any non-boolean keys
with empty values

@return array
Filter attributes by the provided attrribute keys and remove any non - boolean keys with empty values