Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在努力理解这个特定代码是如何工作的。_Php_Smarty - Fatal编程技术网

Php 正在努力理解这个特定代码是如何工作的。

Php 正在努力理解这个特定代码是如何工作的。,php,smarty,Php,Smarty,我面临着一段对我来说毫无意义的代码。我正在一个使用PHP和Smarty模板的网站上工作,但是有一行关于数组的代码我不理解它是如何工作的 $SLang = &SLanguage::getInstance(); $q="SELECT * FROM texte where text_lang='{$SLang->lang}' ORDER BY text_id"; $texte = _sqlFetchQuery($q); foreach($text

我面临着一段对我来说毫无意义的代码。我正在一个使用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\u alias']['text']=$text['text\u text']

它被称为锯齿阵列

这是这个的简写:

$texteList[$text['text_alias']] = array('text'=>$text['text_text']);
因此,它使用$text['text_alias']显示的任何文本创建一个命名数组,并将一个带有命名“text”元素的数组赋值为其值

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

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

$texteList是一个多维“关联”数组。但它的赋值对分配给$philosphyList的内容没有影响。我不希望$philosophyList的转储是字面上的“text\u text”,而是$text的内容是“key”“text\u text”。此外,我不会依赖SELECT*。如果您只需要text\u text、text\u alias和text\u id字段,请显式选择它们。谢谢Richard。现在它更有意义了。