如果我有一个ArrayCollection类型的变量,我该如何检查集合中是否存在特定名称的密钥,包括嵌套。如果它确实如何获得并改变该值?
答案 0 :(得分:3)
我猜你在谈论Doctrines ArrayCollection \Doctrine\Common\Collections\ArrayCollection
。
它确实实现了phps native ArrayAccess
接口,因此请查看the docs。请检查:
use Doctrine\Common\Collections\ArrayCollection;
$myCollection = new ArrayCollection(array('testKey' => 'testVal'));
var_dump(isset($myCollection['testKey']));
它还从Collection
接口实现了自己的方法。
/**
* Checks whether the collection contains an element with the specified key/index.
*
* @param string|integer $key The key/index to check for.
*
* @return boolean TRUE if the collection contains an element with the specified key/index,
* FALSE otherwise.
*/
public function containsKey($key);
对于嵌套对象,没有构建方法,你必须自己遍历集合,就像使用普通数组一样。