2013-07-22 5 views
0

Я хочу пересечь массив, результат перейдет к другому массиву.
Итак, я написал: $result = array_intersect($arrayone,$arraytwo);.Array Intersect PHP

Если я делаю count($result), он возвращает правильное значение, но если я сделаю $result[0], он возвращает следующее уведомление: Notice: Undefined offset: 0.

+2

Показать Ваш код. –

+0

Я предполагаю, что индексы разные; Сделайте var_dump ($ result), чтобы проверить. – jgroenen

+0

используйте 'var_dump ($ result);' для проверки переменной. –

ответ

4

Пересечение поддерживает индекс. сделайте следующее

$result = array_intersect($arrayone,$arraytwo); 
$result = array_values($result); 

Тогда вы можете получить доступ с $result[0];

4

Это происходит потому, что array_intersect сохраняет ключи от своего первого аргумента. Если $arrayone не имеет ключа 0, $result также не будет иметь его.

Если вас не интересуют ключи результата, вы можете просто переиндексировать его array_keys($result), а затем получить доступ к элементам, указанным в числовых индексах.

Однако имейте в виду, что прямое обращение к элементам внутри массива с числовыми индексами несколько необычно в PHP; в большинстве случаев есть более подходящие способы обработки массивов с числовой индексацией.