我无法弄清楚如何在数组中找到对象的索引。例如,我有这样的数据结构:
class Person {
var name: String
var age: Int
init(name personName: String, age personAge: Int) {
self.name = personName
self.age = personAge
}
}
let person1 = Person(name: "person1", age: 34)
let person2 = Person(name: "person2", age: 30)
...
var personsArray = [person1, person2, ...]
我尝试使用personsArray.index(where: ....)
,但我不明白如何使用它。 index(of: ...)
不起作用。我认为因为personsArray
不符合Equatable
协议......
答案 0 :(得分:15)
index(of: )
在您的情况下获取Person - 它是通用函数。
index(where: )
获取您要查找特定人员的条件
你能做什么:
personsArray.index(where: { $0.name == "person1" })
或者您可以将对象发送到:
personsArray.index(of: existingPerson)
对于这两个选项,你可以得到零 - 你必须检查它是否为零(或保护它)。
答案 1 :(得分:1)
从我的角度来看,只需与$stmt = $db->prepare($sql);
$data = $_POST['data'];
foreach ($data as $key => $value) {
$stmt->execute(array(
':mode' => $value['value'],
':id' => $value['id']
));
}
进行比较。
小例子。
===
答案 2 :(得分:0)
我找到了如何使用.index(where...
personsArray.index { (item) -> Bool in
item.name == "person2" && item.age == 30
}