2016-06-15 3 views
1

ive искал здесь какое-то время знать и havent нашел точный ответ. Я ищу, поэтому я надеюсь, что один из вас, ребята, сможет мне помочь.сопоставление 2 многомерных массивов сравнение

У меня есть 2 массива, dataArray() был сгенерирован из простого парсера HTML DOM. Если я print_r в $ DataArray я получаю следующие выходные данные

Array ( 
[0] => Array () 
[1] => Array ( 
    [0] => 'value1a' 
    [1] => 80 
    [2] => '2016-06-14 16:40:51' 
    [3] =>) 
[2] => Array ( 
    [0] => 'value1b' 
    [1] => 80 
    [2] => '2016-06-14 16:30:17' 
    [3] =>) 
[3] => Array ( 
    [0] => 'value1c' 
    [1] => 80 
    [2] => '2016-06-14 16:40:51' 
    [3] =>) 
    ) 

и searchArray(), который генерируется динамически, и если я print_r в searchArray() Я получаю следующий результат:

Array (
[0] => Array ( 
    [0] => 'value1c' 
    [1] => 80 
    [2] => '2016-06-14 16:40:51' 
    [3] =>) 
) 

Im пытается чтобы сопоставить searchArray() с dataArray() и дать логический результат true, если (все 3 значения) searchArray() соответствует (все 3 значения) dataArray()

Так что в этом случае это будет истинное утверждение ,

Я надеюсь, что это имеет смысл, и Ive объяснил себе четко

ответ

0

Вы можете использовать функцию PHP array_search (http://php.net/array_search) для этого, потому что при тестировании поиск/ключ равенства, PHP будет проверять содержимое всего массива, чтобы проверить, что они равны. Вот мой тестовый пример;

<?php                    

$dataArray = array(                
    array(),                  
    array(                   
     'value1a',                 
     80,                   
     '2016-06-14 16:40:51',              
     null                  
    ),                    
    array(                   
     'value1b',                 
     80,                   
     '2016-06-14 16:30:17',              
     null                  
    ),                    
    array(                   
     'value1c',                 
     80,                   
     '2016-06-14 16:40:51',              
     null                  
    )                    
);                     

$searchArray = array(                
    'value1c',                  
    80,                    
    '2016-06-14 16:40:51',               
    null                   
);                     

var_dump(array_search($searchArray, $dataArray)); // int(3) (the found key)   

$searchArray[0] = 'some other value';            

var_dump(array_search($searchArray, $dataArray)); // false       

?> 
0

Вам нужно написать пользовательскую функцию, чтобы соответствовать массив recursovely.

вы можете проверить решение, упомянутое в нижеприведенном сообщении, которое вам очень поможет.

https://www.daniweb.com/programming/web-development/threads/168654/compare-multi-dimensional-arrays-and-return-they-keys-who-s-values-are-different

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