我有一个形式的数组:
class anim {
public $qs;
public $dp;
public $cg;
public $timestamp;
}
$animArray = array();
$myAnim = new anim();
$myAnim->qs = "fred";
$myAnim->dp = "shorts";
$myAnim->cg = "dino";
$myAnim->timestamp = 1590157029399;
$animArray[] = $myAnim;
$myAnim = new anim();
$myAnim->qs = "barney";
$myAnim->dp = "tshirt";
$myAnim->cg = "bird";
$myAnim->timestamp = 1590133656330;
$animArray[] = $myAnim;
$myAnim = new anim();
$myAnim->qs = "fred";
$myAnim->dp = "tshirt";
$myAnim->cg = "bird";
$myAnim->timestamp = 1590117032286;
$animArray[] = $myAnim;
如何创建一个仅包含 $animArray 的非重复项(以及找到重复项的最新条目)的新数组,其中重复项定义为:
其中一个$myAnim->dp与另一个数组元素的值相同$myAnim->dp,并且$myAnim->cg第一个和$myAnim->cg第二个的值彼此相同。
在上面的示例中,只有第一个元素根据该定义是唯一的。
我希望有一个优雅的解决方案。我已经阅读了 PHP 手册中的所有数组函数,但看不到它是如何实现的。
我可以遍历每个数组元素,检查是否$myAnim->dp与另一个数组元素的值相同$myAnim->dp,将匹配项保存到一个新数组中,然后遍历该新数组,检查它是否与该新数组中的任何其他元素$myAnim->cg匹配。$myAnim->cg
一个更优雅的解决方案将允许我更改键值对的哪些组合来确定是否存在重复项,而无需重新编写很多代码。
这样的解决方案存在吗?
感谢您帮助这个新手:)
婷婷同学_
holdtom
浮云间