【问题标题】:PHP - Sort array with first alphabet and convert it to keyPHP - 使用第一个字母对数组进行排序并将其转换为键
【发布时间】:2022-07-07 22:00:55
【问题描述】:

所以基本上,我会有一个类似这样的数组..

<?php 

$array = array(
    'Actual Hours' => 'http://www.example.com/actual',
    'Algorithm' => 'http://www.example.com/algorithm',
    'Time Clock App' => 'http://www.example.com/time',
    
);

echo '<pre>';
print_r($array);
exit;

我想要这样的输出......

Array
(
    [A] => [
        [Actual Hours] => http://www.example.com/actual
        [Algorithm] => http://www.example.com/algorithm
    ],
    [T] => [
        [Time Clock App] => http://www.example.com/time        
    ],
    
)

所以基本上我想要这样的东西..

如您所见,我想要数组键的第一个字母,并希望通过添加一个新键对其进行排序,并以此方式对其进行排序。

我已经研究过了,但没有找到任何解决方案或建议。

有人可以指导我如何实现这一目标。

谢谢

【问题讨论】:

  • “我想要...” 不是一个实际的问题。你试过什么吗?你究竟在哪里卡住了?您应该能够简单地遍历数组(使用foreach)并创建一个看起来像您想要的新数组。我们很高兴帮助您解决您在代码中遇到的具体问题,但这个问题更像是一个规范而不是一个问题,而且这不是免费的编码服务。
  • 第一个字母是mb_substr($str, 0, 1)

标签: php arrays


【解决方案1】:

给你!


$array = array(
    'Actual Hours' => 'http://www.example.com/actual',
    'Algorithm' => 'http://www.example.com/algorithm',
    'Time Clock App' => 'http://www.example.com/time',

);

$new_array = [];
foreach( $array as $key => $value ) {
    $char = strtoupper(substr($key,0,1));
    if(!array_key_exists( $char, $new_array)) {
        $new_array[$char] = [];
    }
    $new_array[$char][$key] = $value;
}

$array = $new_array;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2022-06-12
    • 2023-03-05
    • 2011-10-21
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多