我目前正在创建一个由mysql查询中的值组成的排序方法.
这是阵列的简要视图:
Array
(
[0] => Array
(
['id'] = 1;
['countries'] = 'EN,CH,SP';
)
[1] => Array
(
['id'] = 2;
['countries'] = 'GE,SP,SV';
)
)
Run Code Online (Sandbox Code Playgroud)
我已经成功地根据数字id值进行了正常的操作,但是我更愿意按"countries"字段的内容对数组进行排序(如果它包含一个设置字符串,在这种情况下是一个国家/地区代码),然后由id字段.
以下片段是我对如何做到的第一个想法,但我不知道如何将它合并到一个工作函数中:
in_array('EN', explode(",",$a['countries']) );
Run Code Online (Sandbox Code Playgroud)
你会怎么做?
谢谢!
不幸的是,我真的无处可去.
这就是我现在拥有的东西,它给我的只是错误: uasort() [function.uasort]: Invalid comparison function
function compare($a, $b) {
global $usercountry;
if ( in_array($usercountry, $a['countries']) && in_array($usercountry, $a['countries']) ) {
$return = 0;
}
else if (in_array($usercountry, $a['countries'])) {
$return = 1;
}
else {
$return = -1;
}
return $return;
}
$array= usort($array, …
Run Code Online (Sandbox Code Playgroud) 我可以对多维数组进行排序,但不保持数字索引关联.
如何保持数字索引关联?
码:
$waiters[76] = array('weight' => 67, 'specialties' => 1);
$waiters[14] = array('weight' => 41, 'specialties' => 2);
$waiters[58] = array('weight' => 85, 'specialties' => 3);
$waiters[89] = array('weight' => 98, 'specialties' => 4);
$waiters[68] = array('weight' => 86, 'specialties' => 5);
$waiters[31] = array('weight' => 13, 'specialties' => 6);
print_r($waiters);
// Obtain a list of waiters
foreach ($waiters as $id => $waiter) {
$weight[$id] = $waiter['weight'];
$specialties[$id] = $waiter['specialties'];
}
// Sort the data with weight descending, specialties …
Run Code Online (Sandbox Code Playgroud) 我有一个数组:
Array
(
[product1] => Array
(
[id] => 1
[title] => 'p1'
[extra] => Array(
[date] => '1990-02-04 16:40:26'
)
)
[product2] => Array
(
[id] => 2
[title] => 'p2'
[extra] => Array(
[date] => '1980-01-04 16:40:26'
)
)
[product3] => Array
(
[id] => 3
[title] => 'p3'
[extra] => Array(
[date] => '2000-01-04 16:40:26'
)
)
[product4] => Array
(
[id] => 4
[title] => 'p4'
[extra] => Array(
[date] => '1995-01-04 16:40:26'
)
)
[product5] …
Run Code Online (Sandbox Code Playgroud) 给定这个数组:
Array
(
[0] => Array
(
[status] => closed
[userModifiedAt] => 2015-12-09T11:47:46Z
)
[1] => Array
(
[status] => active
[userModifiedAt] => 2016-02-08T16:43:26Z
)
[2] => Array
(
[status] => closed
[userModifiedAt] => 2016-03-31T03:47:19Z
)
[3] => Array
(
[status] => pending
[userModifiedAt] => 2015-12-08T14:09:58Z
)
Run Code Online (Sandbox Code Playgroud)
我想通过[status]订购此订单: - 待处理 - 活动 - 已关闭
对于每个状态,按[userModifiedAt]排序.
我正在使用此代码:
usort($array, function($a,$b){ return strcmp($a['status'], $b['status']);} );
Run Code Online (Sandbox Code Playgroud)
但它按字母顺序排列,因此状态按以下顺序排序: - 活动 - 关闭 - 待定
如何根据预定义的订单列表订购数组?
我合并我的阵列然后我想按日期排序,但我的贷款和colls在日期有不同的名称
继承我的合并代码
$loan = $this->db->get('loans')->result_array();
$coll = $this->db->get('collectables')->result_array();
$result = array_merge($loan, $coll);
Run Code Online (Sandbox Code Playgroud)
并且继承了输出
Array
(
[0] => Array
(
[loan_id] => 175
[loan_fullname] => Albano, Zester Quinn
[loan_amount] => 15000
[loan_interest] => 2
[loan_date] => 2017-05-30
[loan_total_amount] => 15300
[loan_collectables] => 1
[loan_user_id] => 30
)
[1] => Array
(
[loan_id] => 176
[loan_fullname] => Amamio, Alyanna
[loan_amount] => 15000
[loan_interest] => 2
[loan_date] => 2017-05-31
[loan_total_amount] => 15300
[loan_collectables] => 2
[loan_user_id] => 32
)
[2] => Array
( …
Run Code Online (Sandbox Code Playgroud) 我需要根据数组的一个数组值对数组中的数组进行排序.
例如:
$data = array( array( 1, "Article One", 132, 12402773, 3 ),
array( 2, "Article Two", 251, 12519283, 5 ),
array( 3, "Article Three", 107, 12411321, 3 ),
array( 4, "Article Four", 501, 12228135, 4 ) );
Run Code Online (Sandbox Code Playgroud)
默认情况下,如果我打印每个数组的第二个元素:
我需要通过子数组的第3个元素按降序对其进行排序.
所以它会是这样的:
因为501> 251> 132> 107.
有什么建议吗?
所以我希望通过"fk_page_id"升序对下面的多维数组进行排序.有没有人有任何指针.我认为usort()是我必须看的地方,但似乎我无法找到任何具有我特定阵列结构的人.
Array
(
[0] => Array
(
[title] => subpage of subpage!
[id] => 5
[long_title] =>
[fk_page_id] => 4
)
[1] => Array
(
[title] => about us subpage
[id] => 4
[long_title] =>
[fk_page_id] => 2
)
[2] => Array
(
[title] => about us
[id] => 2
[long_title] =>
[fk_page_id] => 1
)
)
Run Code Online (Sandbox Code Playgroud) 我有一个包含特定值的数组,我想根据其中的特定值对数组进行排序。例如,TOTCOM_METIER DESC。前任 :
Array
(
[0] => Array
(
[TOTCOM_METIER] => 1
[metier] => Traiteur
)
[1] => Array
(
[TOTCOM_METIER] => 4
[metier] => Restauration traditionnelle
)
[2] => Array
(
[TOTCOM_METIER] => 2
[metier] => Coiffure
)
)
Run Code Online (Sandbox Code Playgroud)
我想在 TOTCOM_METIER DESC 上对其进行排序以获得以下结果:
Array
(
[0] => Array
(
[TOTCOM_METIER] => 4
[metier] => Restauration traditionnelle
)
[1] => Array
(
[TOTCOM_METIER] => 2
[metier] => Coiffure
)
[2] => Array
(
[TOTCOM_METIER] => 1
[metier] => Traiteur
) …
Run Code Online (Sandbox Code Playgroud) 是否有更好的方法按$ tabdocids值的顺序对$ datas数组进行排序?
foreach ( $tabdocids as $ordered_id ) {
foreach ( $datas as $doc )
if ($doc->docid == $ordered_id)
$ordered [] = $doc;
}
$datas=$ordered;
Run Code Online (Sandbox Code Playgroud) 我有这种阵列
array(5) {
[0]=>
array(5) {
[0]=>
string(7) "jannala"
[1]=>
string(10) "2009-11-16"
[2]=>
string(29) "
<p>Jotain mukavaa.</p>
"
[3]=>
int(12)
[4]=>
int(1270929600)
}
[1]=>
array(5) {
[0]=>
string(7) "jannala"
[1]=>
string(10) "2009-11-16"
[2]=>
string(51) "
<p>Saapumiserä II/09 astuu palvelukseen</p>
"
[3]=>
int(11)
[4]=>
int(1270929600)
}
...
}
Run Code Online (Sandbox Code Playgroud)
我需要做的是根据数组的[x] [4](unix时间戳值)对数组进行排序.我怎么做到这一点?