苦苦于理解这个特定代码是如何工作的。

时间:2016-01-26 17:17:32

标签: php smarty

我面对一段对我来说没什么意义的代码。我正在使用PHP和Smarty模板的网站上工作,但有一行关于数组的代码,我不明白它是如何工作的。

$SLang =  &SLanguage::getInstance();
    $q="SELECT * FROM texte where text_lang='{$SLang->lang}' ORDER BY text_id";
    $texte = _sqlFetchQuery($q);        
    foreach($texte as $text)
    {
        $texteList[$text['text_alias']]['text'] = $text['text_text'];
        if($text["text_category"]==3){
            $philosophyList[] = $text["text_text"];
            $philosophyListSeo[] = $text["text_alias"];
        }
    }

$ philosophyList上的“var_dump”输出只从数据库中获取“text_text”列,现在我知道它是如何到达那里的结构。有人可以解释一下吗?这段特殊代码如何工作? $texteList[$text['text_alias']]['text'] = $text['text_text'];

1 个答案:

答案 0 :(得分:0)

它被称为锯齿状阵列。

它的简写:

$texteList[$text['text_alias']] = array('text'=>$text['text_text']);

因此,它使用$ text [' text_alias']带来的任何文本创建一个命名数组,并将其命名为"文本"元件。

但这与$philosophyList[]无关。要了解$philosophyList[]的工作原理,您需要了解foreach的工作原理;基本上它需要数组中的每个项目(在本例中为$texte)并将该数组项的值赋给变量(在本例中为$text)。这只是一种执行for循环的简单方法。他们可以轻松完成:

$philosophyList[] = $texte[$i]["text_text"];