WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
класс не описан

Pelago\Emogrifier\Utilities

ArrayIntersector{} WC 1.0

When computing many array intersections using the same array, it is more efficient to use array_flip() first and then array_intersect_key(), than array_intersect(). See the discussion at {@link https://stackoverflow.com/questions/6329211/php-array-intersect-efficiency Stack Overflow} for more information.

Of course, this is only possible if the arrays contain integer or string values, and either don't contain duplicates, or that fact that duplicates will be removed does not matter.

This class takes care of the detail.

Хуков нет.

Возвращает

Null. Ничего.

Использование

$ArrayIntersector = new ArrayIntersector();
// use class methods

Методы

  1. __construct(array $array)
  2. intersectWith(array $array)

Код ArrayIntersector{} WC 4.6.0

<?php
class ArrayIntersector
{
    /**
     * the array with which the object was constructed, with all its keys exchanged with their associated values
     *
     * @var (int|string)[]
     */
    private $invertedArray;

    /**
     * Constructs the object with the array that will be reused for many intersection computations.
     *
     * @param (int|string)[] $array
     */
    public function __construct(array $array)
    {
        $this->invertedArray = \array_flip($array);
    }

    /**
     * Computes the intersection of `$array` and the array with which this object was constructed.
     *
     * @param (int|string)[] $array
     *
     * @return (int|string)[] Returns an array containing all of the values in `$array` whose values exist in the array
     *         with which this object was constructed.  Note that keys are preserved, order is maintained, but
     *         duplicates are removed.
     */
    public function intersectWith(array $array)
    {
        $invertedArray = \array_flip($array);

        $invertedIntersection = \array_intersect_key($invertedArray, $this->invertedArray);

        return \array_flip($invertedIntersection);
    }
}