我想在select元素中将每个文件名放在$ xsl_dir_path(绝对路径)中。我试过这个:
$files = glob($xsl_dir_path . "/*.xsl");
array_walk($files, 'basename');
但它根本不起作用,我仍然可以看到文件的全名。 我知道我可以在浏览basename
时应用$files
并构建选项元素,但我想在任何html输出之前执行此操作
答案 0 :(得分:6)
array_walk
非常有用。在这种情况下,basename
参数不是引用。
你想要的是array_map
:
$files = glob($xsl_dir_path . "/*.xsl");
$files = array_map('basename', $files);
答案 1 :(得分:0)
那是因为basename()
不应该改变数组单元格的值,只是为了返回新值。您需要向array_walk()
传递一个实际更改单元格值的函数。基于array_walk docs:
function my_basename(&$item)
{
$item = basaname($item);
}
$files = glob($xsl_dir_path . "/*.xsl");
array_walk($files, 'my_basename');
答案 2 :(得分:0)
试试这个:
function basename_for_walk (&$value, $key) {
$value = basename($value);
}
$files = glob($xsl_dir_path . "/*.xsl");
array_walk($files, 'basename_for_walk');