相关疑难解决方法(0)

在PHP中对多维数组进行排序

我目前正在创建一个由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)

php arrays usort multidimensional-array

5
推荐指数
1
解决办法
4800
查看次数

array_multisort,保持数字索引关联

我可以对多维数组进行排序,但不保持数字索引关联.

如何保持数字索引关联?

码:

$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)

php arrays array-multisort

5
推荐指数
2
解决办法
3293
查看次数

将特定的数组项移动到数组的开头而不改变其余项的顺序

我有一个数组:

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)

php arrays sorting

5
推荐指数
1
解决办法
165
查看次数

PHP:根据值列表排序多维数组

给定这个数组:

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)

但它按字母顺序排列,因此状态按以下顺序排序: - 活动 - 关闭 - 待定

如何根据预定义的订单列表订购数组?

php arrays

5
推荐指数
1
解决办法
53
查看次数

Codeigniter按日期数组排序

我合并我的阵列然后我想按日期排序,但我的贷款和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)

sorting codeigniter date

5
推荐指数
1
解决办法
789
查看次数

如何在数组中对数组进行排序?

我需要根据数组的一个数组值对数组中的数组进行排序.

例如:

$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.

有什么建议吗?

php

4
推荐指数
1
解决办法
1718
查看次数

帮助排序这个数组

所以我希望通过"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)

php arrays multidimensional-array

4
推荐指数
1
解决办法
65
查看次数

使用php对特定值的数组进行排序

我有一个包含特定值的数组,我想根据其中的特定值对数组进行排序。例如,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)

php arrays sorting

4
推荐指数
1
解决办法
5866
查看次数

按照php中另一个数组的值的顺序对数组进行排序

是否有更好的方法按$ 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)

php arrays sorting

3
推荐指数
1
解决办法
110
查看次数

在PHP中对多维数组进行排序?

我有这种阵列

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时间戳值)对数组进行排序.我怎么做到这一点?

php arrays sorting multidimensional-array

2
推荐指数
1
解决办法
1660
查看次数