我有一个项目,我需要在7月之前完成,这是为了学校。 在我开始遇到来自数据库的数组问题之前,一切顺利。 请记住,这是我第一次使用PHP,而我正在学习:
我的数据库有一个名为“Pessoas”的表,另一个名为“Pessoas_Pessoas”。第二个是保留“Pessoas”表中条目之间关系的记录(例如,如果ID 1与ID 2有关系,则信息将保留在“Pessoas_Pessoas”中)。 棘手的部分是我应该使用PHP来防止用户重复关系。 一个很好的例子是Facebook的朋友系统: 如果我和约翰成为朋友,那么他的个人资料就不会出现在“你可能知道的人”部分。
由于我使用的是MVC和Slim Framework,我设法从模型上的数据库中得到了我想要的东西,但我在Controller上遇到了这个问题:
This is an image from the table "Pessoas_Pessoas", being id_PessoasA the id of the profile being visualized and id_PessoasB the id of the profile I'm trying to make a relationship with
我设法得到5个配置文件来测试这个功能,我设法得到这些关系,但问题是,当我尝试验证每个配置文件的id是否相同时,id_PessoasB然后从数组中取消设置,但它即使条件为真,也只能工作一次。这是代码:
foreach ($resultadoRelacao as $key => $value) {
foreach ($resultadoRelacao0 as $key0 => $value0) {
if ($value0['id'] == $value['id_PessoasB']) {
$indice = array_search($value0['id'], $resultadoRelacao0);
unset($resultadoRelacao0[$indice]);
}
}
}
感谢您的时间,如有需要请随时提出。我不太确定我需要什么,我被困了两个星期。
答案 0 :(得分:0)
当您使用foreach()
遍历数组并且您已将元素与您要查找的元素匹配时,您可以使用该值的键值(在本例中为$key0
) foreach()
删除您当前正在查看的元素...
foreach ($resultadoRelacao as $key => $value) {
foreach ($resultadoRelacao0 as $key0 => $value0) {
if ($value0['id'] == $value['id_PessoasB']) {
unset($resultadoRelacao0[$key0]);
}
}
}
答案 1 :(得分:-1)
foreach ($resultadoRelacao as $key => $value) {
foreach ($resultadoRelacao0 as $key0 => $value0) {
if ($value0['id'] == $value['id_PessoasB']) {
if(($indice = array_search($value0['id'], $resultadoRelacao0)) !==false){
unset($resultadoRelacao0[$indice]);
}
}
}
}