PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-通过变量obj属性对对象数组进行排序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我是sorting an array of objects by object property,使用此过程:

function cmp($a, $b)
{
    return strcmp($a->name, $b->Name);
}

usort($array_of_obj, "cmp"); //sorts array by object name

就我而言,对象属性存储为变量$prop,因此我可以选择要从中排序的属性(名称,日期等).所以,我想要这样的事情:

function cmp($a, $b, $prop)  
{
    return strcmp($a->$prop, $b->$prop);
}

$prop = 'someproperty';
usort($array_of_obj, "cmp");  //sorts array by chosen object property, $prop

我的问题是,当我调用“ cmp”函数时,无法将值传递给$prop参数.我不确定是否应该这样做,或者是否有某种方法可以解决此问题.我能做什么?

解决方法:

您可以将调用包装在匿名函数

function cmp($a, $b, $prop) {
    return strcmp($a->$prop, $b->$prop);
}

$prop = 'someproperty';
usort($array_of_obj, function($a,$b) use ($prop) { 
    return cmp($a,$b,$prop); 
});

编辑:Explanation of the keyword ‘use’

大佬总结

以上是大佬教程为你收集整理的php-通过变量obj属性对对象数组进行排序全部内容,希望文章能够帮你解决php-通过变量obj属性对对象数组进行排序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: