首页 > 解决方案 > Symfony 4 - 带有多数组的 in_array

问题描述

我有 :

AdminValidateurController.php on line 43:
array:2 [▼
  0 => Validateur^ {#986 ▼
    -id: 5
    -ordre: 1
    -validateur: User^ {#773 ▶}
  }
  1 => Validateur^ {#988 ▼
    -id: 6
    -ordre: 2
    -validateur: User^ {#1015 ▶}
  }
]

验证器包含一个用户。我想测试某个用户是否是转储(验证器板)的一部分。

为此,我有一个 Validator 对象,我可以使用 $ validateur->getValidateur () 来恢复用户。我想测试它是否已经是 validateurs ($ validateurs) 的一部分。

为此,我做了:

if (in_array($validateur->getValidateur(), $validateurs)) {
    dd("oui");
}

但它不起作用:s

标签: phparrayssymfonysymfony4

解决方案


如果您的数组来自数据库,您可以使用查询检查用户是否是验证者。例如:

$exists = $validateurRepository->findOneBy(['validateur' => $validateur->getValidateur());  
// Or find($validateur->getId()) if it's already persisted
if (null != $exists) {
    //...
}

但是,如果您已经将结果作为数组,您可以将其重新映射到User数组并进行检查:

$users = array_map(function($e) { return $e->getValidateur(); }, $validateurs);
if (in_array($validateur->getValidateur(), $users)) {
    dd("oui");
}

推荐阅读