【问题标题】:Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW)解析错误:语法错误,意外 '=>' (T_DOUBLE_ARROW)
【发布时间】:2015-12-04 23:46:16
【问题描述】:

我不太擅长数组,但我正在尝试。不过想不出来这个。我想做这个脚本,在每个“numberofunits”的末尾回显$text2,如果单位大于1。这是丹麦语。

år 是年份, måned 是月份, uge是星期, 等等等等。

function humanTiming ($time)
{

    $time = time() - $time; // to get the time since that moment
    $time = ($time<1)? 1 : $time;
    $tokens = array (
        31536000 => 'år' => '',
        2592000 => 'måned' => 'er',
        604800 => 'uge' => 'r',
        86400 => 'dag' => 'e',
        3600 => 'time' => 'r',
        60 => 'minut' => 'ter',
        1 => 'sekund' => 'er'
    );

    foreach ($tokens as $unit => $text => $text2) {
        if ($time < $unit) continue;
        $numberOfUnits = floor($time / $unit);
        return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'.$text2.':'');
    }

}

$time = $row['timestamp'];
echo humanTiming($time);

【问题讨论】:

    标签: php arrays time


    【解决方案1】:

    PHP 多维数组不是这样工作的,

    $tokens = [
        31536000 => 'år' => '',
    ];
    

    这样做:

    $tokens = [
        31536000 => ['år' => ''],
        2592000 => ['måned' => 'er'],
    ];
    

    [ ] 是一个数组表示法,从 PHP 5.4 开始可以使用,如果您有更早的版本,请改用array( )。)

    虽然我不确定这是否正是您所需要的..

    当您拥有特定类型的数组时,您应该尝试使用对象。首先它们看起来更难,但实际上它们更容易(与 C++ 相比 struct 可能)。

    回复评论,循环foreach ($tokens as $unit =&gt; $text =&gt; $text2)不起作用:

    您不能如此简单地遍历一个维数组。 您需要 2 个嵌套的 foreach

    foreach ($tokens as $token => $unitArray) { // outer array
        echo $token, PHP_EOL;
        foreach ($unitArray as $unit => $text) { // inner array
            echo $unit . ' has text: ' . $text, PHP_EOL;
        }
    }
    

    参数语法:

    foreach ($array as $value)
    foreach ($array as $key => $value)
    

    不要对什么是键和什么是值感到困惑,值是始终您分配(给键)的变量,无论是什么类型的变量。如果不指定键,它会自动成为以0 开头的数字数组。

    【讨论】:

    • 我确定这就是我要找的。我会调查对象!谢谢你。我现在在这一行遇到同样的错误: foreach ($tokens as $unit => $text => $text2) { How can I fix this one?
    • @Morten 和以前一样 :) 不要链接 =&gt; 运算符,而是像 Dan 的答案中的嵌套数组一样,使用嵌套的 foreach。
    • 太棒了!非常感谢 - 它就像一个魅力! @MorganTouvreyQuilling - 谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2013-12-20
    • 2012-06-17
    • 2013-10-11
    • 2015-05-11
    • 2023-03-18
    • 2015-02-24
    相关资源
    最近更新 更多