从特定索引/键的返回数组中获取项目的快捷方式?

时间:2012-09-12 09:27:21

标签: php

我觉得有一些方法可以用快捷方式来做到这一点:

$date_array = explode("-", $date);
$day = $date_array[2];

类似的东西:

$day = explode("-", $date)[2];

基本上得到答案并将其设置为什么?

不记得了,但是并没有像.=串联那样花哨的“=”之类的东西。还有其他类似的快捷方式吗?似乎无法在Google上找到包含所有快捷方式的文章。

我讨厌必须制作一个$date_array当我真正想要的是$day时,让我觉得我的代码效率不高。

编辑:改变标题更加普遍,不能想到任何伟大的事情。

3 个答案:

答案 0 :(得分:5)

列出变量

list(,,$day) = explode("-", $date);

list()接受一个数组并将其解析为变量...你可以跳过你不想要的项目,将项目留空,就像我上面所做的那样。应该做你需要的。您尝试的其他类型的语法将无法在php 中工作(至少不是我曾经使用过的版本) - 这更像是JavaScript类型表示法。

替代

万一你感兴趣的话还有另外一个解决你正在尝试的方法(除非它只是一个例子来说明)

/// this will give you the current day based on server time
$day = date('d');

/// this will work from an existing Y-m-d date
$day = date('d', strtotime($date)); 

现在,将Y-m-d日期字符串转换为时间戳是否比分割字符串并列出其变量更快 - 只有速度测试会告诉(我认为分裂会胜出)。但对我来说,上面的内容更好,因为我不禁想到其他被拆分的数组项目,然后只是遗忘;)

答案 1 :(得分:5)

new features in PHP 5.4 page所述,您建议的语法(称为函数数组解除引用)现在可以从该版本开始。

$day = explode("-", $date)[2];

然而,这在5.3或之前不起作用。

答案 2 :(得分:0)

在php5.4之后你可以这样做:

$day = explode("-", $date)[2];

在php5.4之前,您可以使用list

list(,,$day) = explode("-", $date);