我面对一段对我来说没什么意义的代码。我正在使用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'];
答案 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"];