我有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] => )
)
我试图将searchArray()与dataArray()匹配,如果(所有3个值)searchArray()与(所有3个值)匹配,则给出布尔结果为true dataArray()
所以在这种情况下,这将是一个真实的陈述。
答案 0 :(得分:0)
您需要编写自定义函数以递归匹配数组。
您可以查看以下帖子中提到的解决方案,这对您有很大帮助。
{{3}}
答案 1 :(得分: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
?>