将基于0的数组转换为基于1的数组

时间:2015-07-29 10:13:40

标签: php arrays

我有一个基于0的数组

 url(API_HOST_URL).POST <:<
otherheadersAsMAp <:<
Map("Content-Type" -> "application/x-www-form-urlencoded") << 
"name=SomeName&parentId=SomeParentID"

我希望从索引一开始:

$days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];

我怎么能这样做,最干净?

我有这个,但它有点丑陋的imo:

$days = [1 => 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];

2 个答案:

答案 0 :(得分:2)

最简单的方法(关于日期)就是直接使用索引。

由于你拒绝使用普通的从零开始的索引,因此制作一个从零开始的索引然后递增所有索引只会是一堆很容易损害可读性的魔法。

字面意思,就这样做:

$days = [
    1 => 'Mon',
    2 => 'Tue',
    3 => 'Wed',
    4 => 'Thu',
    5 => 'Fri',
    6 => 'Sat',
    7 => 'Sun',
];

你的意图非常明确,人们不会想知道你对零索引阵列做了什么时髦伏都教。

如果不这样做,你可以生成一个等于$days长度的数组,并使用array_combine

$days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
$keys = range(1, count($days));
$new = array_combine($keys, $days);

答案 1 :(得分:1)

默认情况下,数组为0。

$ days = [&#39;周一&#39;周二&#39;&#39;周三&#39;周四&#39;周五&#39;周五&#39;周五;,&#39;周六&#39;太阳&#39;;

您可能需要将数组更改为地图键值

 Array ( [1] => Mon [2] => Tue [3] => Wed [4] => Thu [5] => Fri [6] => Sat [7] => Sun ) 

结果:

$days = array(1=>'Mon', 2=>'Tue', 3=>'Wed', 4=>'Thu', 5=>'Fri', 6=>'Sat', 7=>'Sun');

如果数组中的数组是静态的,您可以直接执行此操作:

$value = $days[ ($index -1 )];

也可以使用基于零索引的数组,使用所需的$ index减去1

AudioFileCreateWithURL()