语言:PHP 5 框架:Joomla 3
我有一个从get_file_array()获得的单维数组。我需要分解文件的名称,并最终查询数据库以获取更多信息。为了便于迭代,我希望为我的数组添加一个新维度,而不是创建并行数组。我想过迭代现有的数组并一次将一个节点添加到一个新的,特别是多维的,可能是关联的数组,但这看起来不太优雅。有没有办法在PHP中为现有数组添加维度?这是我最后一次尝试的,这显然不起作用,但传达了我想要完成的精神:
require_once "../components/com_esms/models/officelookup.php";
class filearray extends JApplicationCli
{
var $dir = null;
//var_dump($dir);
//error_log("filecopy CWD: ".getcwd());
//error_log("filecopy files: ".print_r($dir, true));
function __construct()
{
$this->dir = scandir("../esms_reports/", 0);
parent::__construct();
}
public function get_file_array()
{
//$this->out('Hello World');
unset($this->dir[0]);
unset($this->dir[1]);
$fa = array_values($this->dir);
return $fa;
}
}
$arr_filearray_obj = new filearray();
$dir = $arr_filearray_obj->get_file_array();
//error_log("filecopy files: ".print_r($dir, true));
/*
foreach($dir as $filename)
{
$fa_underscore = explode("_", $filename);
error_log("filecopy lotid: ".$fa_underscore[1]);
}
*/
//$officeid = array();
for($i = 0; $i < count($dir); $i++)
{
$fa_underscore = explode("_", $dir[$i]);
//error_log("filecopy lotid: ".$fa_underscore[1]);
//error_log("filecopy number of lots: ".$i);
$fa_dash = explode("-", $fa_underscore[1]);
$dir[i][1] = $fa_dash[1];
}
error_log("filecopy officeids: ".print_r($dir, true));
//$result = file_get_contents("http://192.168.1.250/systemname/index.php/option=com_esms&view=officelookup&format=json&officeID=".$officeid[0]);
$officelookup = new EsmsModelofficelookup();
for($o = 0; $o < count($dir); $o++)
{
$result = $officelookup->get_offices($dir[$o][1]);
}
error_log("filecopy JSON: ".$result);
echo("DONE!");
编辑:这是我正在操作的文件名的示例。关键是获取客户端ID,查询它,检查它是否具有父客户端ID,并使用客户端名称而不是ID创建基于该文件夹的文件夹结构。 DDR_1426112931-429_031215.pdf或typeofreport_lotid-clientid_date.pdf
我想要添加到数组中的是我的数据库查询的结果,它是一个JSON编码的结构,包含客户端的信息和父客户端信息(如果存在)。它看起来像这样:
Array
(
[id] => 123
[name] => Dummy
[parent] => 321
)
Array
(
[id] => 321
[name] => DummyParent
[parent] =>
)