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`传递给它