Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Codeigniter_Flip - Fatal编程技术网

Php 为什么要使用数组翻转两次?

Php 为什么要使用数组翻转两次?,php,arrays,codeigniter,flip,Php,Arrays,Codeigniter,Flip,这里有一个例子 public function jscss($module) { if (is_array($module)) { foreach ($module as $val) { $this->jscss($val); } return; } if ( ! $module) { return; } if(in_a

这里有一个例子

public function jscss($module)
    {
    if (is_array($module))
    {
        foreach ($module as $val)
        {
            $this->jscss($val);
        }
        return;
    }

    if ( ! $module)
    {
        return;
    }

    if(in_array($module, $this->_loaded_jscss_modules)) return;

    array_push($this->_loaded_jscss_modules, $module);
    $this->_loaded_jscss_modules = array_flip(array_flip($this->_loaded_jscss_modules)); // <-- Right this part where i am talking about

    $aSrc = array();

    //css
    foreach($this->_jscss_modules as $key => $val)
    {
        if(in_array($key, $this->_loaded_jscss_modules) && isset($val['css']) )
            foreach($val['css'] as $css)
                $aSrc[] = '<link rel="stylesheet" href="'.$css.'" type="text/css" />';
    }

    //js
    foreach($this->_jscss_modules as $key => $val)
    {
        if(in_array($key, $this->_loaded_jscss_modules) && isset($val['js']) )
            foreach($val['js'] as $js)
                $aSrc[] = '<script type="text/javascript" src="'.$js.'"></script>';
    }

    $vars['jscss_src'] = "\n".implode("\n",$aSrc)."\n";
    $this->vars($vars);

}
公共函数jscss($module)
{
if(is_数组($module))
{
foreach($val模块)
{
$this->jscss($val);
}
返回;
}
如果(!$模块)
{
返回;
}
if(在数组中($module,$this->\u-loaded\u-jscss\u-modules))返回;
数组\u推送($this->\u加载的\u jscss\u模块,$module);
$this->_loaded_jscss_modules=array_flip(array_flip($this->_loaded_jscss_modules));//_jscss_modules as$key=>$val)
{
if(在数组($key,$this->_-loaded_-jscss_模块)和&isset($val['css']))
foreach($val['css']作为$css)
$aSrc[]='';
}
//js
foreach($key=>$val)
{
if(在数组($key,$this->_-loaded_-jscss_模块)和&isset($val['js']))
foreach($val['js']作为$js)
$aSrc[]='';
}
$vars['jscss\u src']=“\n”。内爆(“\n”,$aSrc)。“\n”;
$this->vars($vars);
}

您可以在我评论的地方看到两次使用的数组_flip。为什么要使用函数数组_flip两次

它可能被用作过滤机制。根据文件。用于重复数据消除和删除非字母数字值

请注意,trans的值必须是有效键,即它们需要 可以是整数或字符串。如果某个值已更改,将发出警告 错误的类型,并且所讨论的键/值对将不可用 包括在结果中

如果某个值多次出现,则将使用最新的键作为其值 价值,所有其他的都将丢失

array_flip()以翻转顺序返回一个数组,即trans-be-value中的键和trans-be-key中的值

请注意,trans的值必须是有效键,即它们必须是整数或字符串。如果值的类型错误,则会发出警告,并且结果中将不包括有问题的键/值对

如果某个值多次出现,则将使用最新的键作为其值,其他所有键都将丢失。所以在这里它会删除重复的值,当您翻转两次时,首先它会删除重复的值并交换键值,第二次翻转它会再次交换键值(因此与原始数组相同,只是它会删除所有重复的值)


Ref::

我能再问你一个问题吗?在示例的末尾,最后一行中表达式“$this->vars($vars)”的含义是什么?它调用一个名为
vars的函数并将
$vars`传递给它