草庐IT

php - 在 PHP 中使用自定义键对数组进行排序

我有一个如下结构的数组$array1=array([123]=>array('1'=>'1','2'=>'3'),[345]=>array('1'=>'3','2'=>'5'),[789]=>array('1'=>'1','2'=>'5'),[567]=>array('1'=>'6','2'=>'5'),);另一个数组结构为$array2=array(567,345,789,123);现在我想用php排序函数对这个数组进行排序,我的意思是对第一个数组和第二个数组进行排序,使其看起来像所需的输出下面$array1=array([567]=>array('1'=>'6','2'=>'5')

php - 如何按保留键的姓氏对名称数组进行排序

我有一个数组如下:Array([27]=>'SarahGreen',[29]=>'AdamBrown',[68]=>'FredAble');我想按姓氏排序并保留键:Array([68]=>'FredAble'[29]=>'AdamBrown',[27]=>'SarahGreen');有些名字可能有两个以上的名字,但它始终是我要排序的最后一个名字。在PHP中执行此操作的最佳方法是什么? 最佳答案 您可以使用uasort函数,它允许您指定自定义排序方法,同时还保留键:'SarahGreen',29=>'AdamBrown',68=>'F

php - 从数组中获取三个最大值

我想从我的数组中获取三个最高值,但它也应该通过键正确排序。我有这个代码:上面的输出如下:Array([1]=>1805[2]=>1337[0]=>130)它工作正常,但我希望它另外将其键从最高值排序到最低值。例子:Array([2]=>1805[1]=>1337[0]=>130)明确一点:我希望它按键排序:数组键编号2将始终用于最高值,数组键编号0将始终用于最低值。我该怎么做?/如果您不明白什么,请告诉我。 最佳答案 rsort($array);$top3=array_reverse(array_slice($array,0,3))

php - laravel 按日期排序数组

你好,friend们,我有一个如下所示的数组:array:3[▼0=>array:6[▼"date"=>"2016-05-3115:08:33"0=>"31May16"1=>"aze"2=>"2"3=>"hi"4=>"487841464704194.jpg"]1=>array:6[▼"date"=>"2016-05-3115:26:09"0=>"31May16"1=>"aze"2=>"2"3=>"hey"4=>"487841464704194.jpg"]2=>array:6[▼"date"=>"2016-06-0111:33:06"0=>"01Jun16"1=>"aze"2=>"2"3

php 按两个标准对对象进行排序?

尝试根据(1)深度和(2)权重对这个对象数组进行排序,但不确定如何修改我正在使用的函数以包含其他级别...我正在使用这个函数:functioncmp($a,$b){if($a->weight==$b->weight){return0;}return($a->weightweight)?-1:1;}然后这样做:$menu=get_tree(4,$tid,-1,2);usort($menu,'cmp');这将根据权重对数组进行准确排序,但我需要添加另一个级别的排序。这样数组先按深度排序,再按权重排序。因此,如果原始数组如下所示:Array([0]=>stdClassObject([tid]

php - 如何对多列进行快速排序

我想在php中对一些对象进行快速排序。我正在对对象数组进行排序$object->x;$object->y;$object->z;我想先按x排序,然后是y,然后是z。这是我的快速排序函数它接受一组工作对象,并按特定的排序键(x、y或z列)进行排序该函数返回已排序的对象数组,这些对象已按排序键排序。privatefunctionquicksort($objects,$sortKey){if(count($objects)$v){if($v->$sortKey$sortKey)$left[$k]=$v;else$right[$k]=$v;}returnarray_merge($this->q

php - 如何通过内键对多维数组进行排序

我有一个巨大的数组,我从BattleFieldBadCompany2的API中提取,士兵统计数据可以作为一个多维数组提取,每个士兵都有一个内部数组,但是API对士兵进行排序按字母顺序命名,我想按等级对它们进行排序(这只是该士兵数组中的另一个键)。几天来我一直在努力解决这个问题,有人有什么想法吗?(即按$arr[players][][rank]排序数组这是数组的一部分Array([players]=>Array([0]=>Array([name]=>bigjay517[rank]=>29[rank_name]=>SECONDLIEUTENANTII[veteran]=>0[score]=

php - 从数组中删除值高于/低于阈值的项目

从php中的数组中删除值大于预定阈值的项目的最有效方法是什么,例如给定一个数组Array([0]=>1.639[1]=>2.168[4]=>1.897[6]=>4.129)我想删除所有值大于例如2、保存键关联,给Array([0]=>1.639[4]=>1.897)我知道我可以使用foreach()循环来做到这一点,但似乎应该有更优雅的方法。 最佳答案 无论你使用什么,数组都必须循环遍历,但你可以使用array_filter隐藏它:functiontest($var){return$var

php - 如何在php中对多个表单字段数组进行排序?

我有一个来自表单提交的数组:Array([form_key]=>9juTLit5qQbaBb98[sku]=>Array([0]=>AC25[1]=>AC30[2]=>AC31)[product]=>Array([0]=>95[1]=>100[2]=>101)[related_product]=>Array([0]=>[1]=>[2]=>)[qty]=>Array([0]=>2[1]=>2[2]=>2))有没有什么好的排序方式更像?Array([form_key]=>9juTLit5qQbaBb98[0]=>Array([sku]=>AC25[product]=>95[qty]=>2)

php - Solr 按字段值提升结果

我正在查询solr服务器的位置。这些位置文档还有一个字段“country_code”,其中包含US、GB、DE...等值在某些情况下,我想提高带有特定国家/地区代码的结果,以便我能够按国家/地区排列我的结果的优先级。例如:?q=york假设用户来自英国并且正在搜索York...目前他首先在美国找到了一些York,然后在英国找到了。我希望能够为这个查询指定英国结果应该在最前面。我发现这应该可以通过dismax和bq实现,类似这样:?q=york&dismax=true&bq=country_code:GB^20.0但这并不像预期的那样有效,现在危地马拉的约克(国家代码GT)位居榜首,GB