如何按特定列值的首位整数对子数组进行排序?

18 浏览
0 Comments

如何按特定列值的首位整数对子数组进行排序?

下面的数组应按升序按cat_url_title的第一个数字排序。

Array
(
    [0] => Array
        (
            [cat_id] => 14
            [parent_id] => 2
            [cat_url_title] => 20-a-43m
        )
    [1] => Array
        (
            [cat_id] => 13
            [parent_id] => 2
            [cat_url_title] => 16-a-20m            
        )
    [2] => Array
        (
            [cat_id] => 12
            [parent_id] => 2
            cat_url_title] => 12-a-16m
        )
)
//get the first number
foreach( $arr as $k => $v )
{
    $segs = explode("-",$v['cat_url_title']);
    $nbr = $segs[0]; //this will be 20, 16 or 12
} 

以12开头的cat_url_title值的子数组应变为$arr[0],16应保持为$arr[1],20应移动到$arr[2]。

我该如何实现这个?

admin 更改状态以发布 2023年5月20日
0
0 Comments

usort()

转成中文是:

usort()

0
0 Comments

你正在走上正确的道路,在获取第一个数字后,创建一个包含数字作为键和数组内容作为值的新数组:

$newArray = array();
foreach($arr as $k => $v)
{
  $segs = explode("-", $v['cat_url_title']);
  $newArray[ $segs[0] ] = $v;
}
ksort($newArray);
print_r($newArray);

那应该可以工作。

0