我看过这篇文章PHP, sort array of objects by object fields,它对我很有用,但我需要更进一步的帮助。
此处为代码示例
Array
(
[0] => stdClass Object
(
[ID] => 1
[name] => Mary Jane
[count] => 420
)
[1] => stdClass Object
(
[ID] => 2
[name] => Johnny
[count] => 234
)
[2] => stdClass Object
(
[ID] => 3
[name] => Kathy
[count] => 4354
)
....
我希望能够删除数量超过450的数组对象。我怎么能这样做?所以基本上它删除了([2] => stdClass对象)等等。
我正在使用的功能是
function cmp($a, $b)
{
return strcmp($a->name, $b->name);
}
usort($your_data, "cmp")
那我怎么能这样做呢? 我是否使用unset($ text)命令执行此操作?
答案 0 :(得分:1)
您可以使用array_filter()从数组中删除项目。
$arr = array( ... );
// sort array with your usort
...
// filter array to new one
$filteredArr = array_filter($arr, function($item) {
return $item->count <= 450;
});
答案 1 :(得分:0)
您无法使用usort()
从正在排序的阵列中删除成员。您最好的选择是首先使用array_filter()
删除计数大于450的对象,然后对结果进行排序。