我有2个数组,如下所示。我想检查第一个数组$arrayA
的所有项目是否在$arrayB
中针对键fruit
可用。我该怎么做?
<?php
$arrayA = ['apple', 'guava'];
$arrayB = [
['fruit' => 'apple','vegetables' => 'potato'],
['fruit' => 'guava','vegetables' => 'onion']
];
$containsSearch = count(array_intersect($arrayA, $arrayB)) == count($arrayA);
var_dump($containsSearch);
以上代码返回错误:
PHP注意:在第8行的/var/www/html/test/b.php中,数组到字符串的转换
答案 0 :(得分:2)
您可能想使用array_column()
,因为您只想使用MyManagedObject
键。然后应该是:
fruit
答案 1 :(得分:1)
array_column()
是隔离fruit
元素的必要步骤。不需要count()
调用,因为过滤后的$arrayA
的排序与未过滤后的$arrayA
相同,因此您可以进行相同的检查。
代码:(Demo)
$arrayA = ['apple', 'guava'];
$arrayB = [
['fruit' => 'apple','vegetables' => 'potato'],
['fruit' => 'guava','vegetables' => 'onion']
];
var_export(array_intersect($arrayA, array_column($arrayB, 'fruit')) === $arrayA);
输出:
true
答案 2 :(得分:0)
public ExampleObject(String name, ExampleObject... exampleObjects) {
}
public static void main(String[] args) {
ExampleFunction(new ExampleObject("Test", new ExampleObject("Test2")));
}