2015-01-03 3 views
1

В php, я новичок в php, кто-нибудь поможет мне в этом? У меня есть два массива, в Array2 У меня есть две записи, я хочу проверить данные Array2 в Array1 или нет, как я могу проверить данные Array2 в Array1 его наличие или нет!Как искать данные второго массива в данных первого массива?

Заранее спасибо

Array1

[items] => Array 
    (
     [0] => Array 
      (
       [abc] => z1 
       [xyz] => cool 
       [val] => 2.32 
       [color] => D 
      ) 
     [1] // i have 5o records in array1 
    ); 

Массив 2

[items] => SearchArray 
    (
     [0] => Array 
      (
       [abc] => z1 
       [xyz] => cool 
       [val] => 2.32 
       [color] => D 
      ) 
     [1] // i have 2 records 
    ); 
+1

прочитайте о функции in_array() http://php.net/manual/en/function.in-array.php – chepe263

+0

@ chepe263 благодарит вас за ваш повтор, я не хочу этого, я хочу сделать поиск Данные SearchArray ['items'] из array1 ['items'] как я могу это сделать? –

+0

вы могли бы зациклиться на одном из массивов, проверить, является ли abc из array1 в array2. Если значение true, проверьте значения. – chepe263

ответ

2

Пожалуйста, попробуйте этот код - я надеюсь, что это helpes каким-то образом:

$matches = array(); 

for($i2 = 0; $i2 < count($Array2); $i2++) 
{ 
    for($i1 = 0; $i1 < count($Array1); $i1++) 
    { 
     $bMatch = TRUE; 
     foreach($Array1[$i1] as $key => $val) 
     { 
      if($Array2[$i2][$key] !== $val) 
      { 
       $bMatch = FALSE; 
       break; 
      } 
     } 
     if($bMatch) 
     { 
      $matches[] = array($i2, $i1); 
     } 
    } 
} 

Это Перебирает обоих массивов, сравнивая элементы (которые на самом деле являются суб массивы) таким образом, что они равны, только если все элементы вспомогательного массива от $Array2 равны всем элементам вспомогательного массива от $Array1. Если совпадение найдено, пара ($i2, $i1) добавляется в $matches массив, так что в конце концов, основываясь на вашем примере, вы бы что-то вроде:

$matches => array (
       [0] => array (0, 0) 
       ... 
      ) 

Я надеюсь, что сделанное предположение является надлежащей один.

+0

'if ($ Array2 [$ key]! == $ val) {$ bMatch = FALSE; break;} 'Я получаю ошибку в этой строке, в которой я не получаю ключ от array2. –

+0

Спасибо. работает. –

+0

Я очень рад помочь –

Смежные вопросы

 Смежные вопросы