方括号数组和双引号数组之间有什么区别,特别是在EXIFtool中



我在PHP脚本中使用EXIFTool来处理一些图像。最初,我使用的是".php",它以这样的数组返回数据:

Array
(
[SourceFile] => 19770418_060000000_iOS.jpg
[DateTimeOriginal] => 1977:04:18 00:00:00
[Description] => Lake Huron Trip
[Keywords] => Array
(
[0] => Lake Huron
[1] =>  Memorial Day
[2] =>  John Smith
[3] =>  Janet Weiss
)
)

然后我发现了这个Staylopen库,它显著提高了处理时间,但它以这样的数组返回数据:

Array(Array(
"SourceFile" => "19770418_060000000_iOS.jpg",
"EXIF" => Array(
"DateTimeOriginal" => "1977:04:18 00:00:00"
),
"XMP" => Array(
"Description" => "Lake Huron Trip",
"Subject" => Array("Lake Huron","Memorial Day","John Smith","Janet Weiss")
)
));

我不理解第二种类型的数组。如何将其转换为与第一个类型相同的类型?

感谢@El_Vanja让我走上了正确的道路。第二个输出是用于创建数组的定义字符串。

我将字符串"$outputaray="预先添加到第二个输出中,并通过eval((运行它。

示例:

$output = "Array(Array(
"SourceFile" => "19770418_060000000_iOS.jpg",
"EXIF" => Array(
"DateTimeOriginal" => "1977:04:18 00:00:00"
),
"XMP" => Array(
"Description" => "Lake Huron Trip",
"Subject" => Array("Lake Huron","Memorial Day","John Smith","Janet Weiss")
)
));"
$prependstring="$outputarray=";
eval($prependstring . $output);

现在$outputaray已经将该输出转换为数组,所以print_r($outputalay(显示如下:

Array
(
[SourceFile] => 19770418_060000000_iOS.jpg
[EXIF] => Array
(
[DateTimeOriginal] => 1977:04:18 00:00:00
)
[XMP] => Array
(
[Description] => Lake Huron Trip
[Subject] => Array
(
[0] => Lake Huron
[1] => Memorial Day
[2] => John Smith
[3] => Janet Weiss
)
)
)

最新更新