简单数组给出错误。
警告第19行上的非法字符串偏移'文件'
任何帮助都会很棒
<?php
// $someffdd is output of print_r
$someffdd="Array
(
[file] => Array
(
[name] => 2Pcs-font-b-Mini-b-font-font-b-Couple-b-font-Lover-Animal-DIY-Resin-Fairy-32-185x215.jpg
[type] => application/octet-stream
[tmp_name] => /tmp/phpwhglrk
[error] => 0
[size] => 8713
)
)";
foreach((array) $someffdd as $value ) {
$jkgkgff=$value['file'];
echo $jkgkgff;
}
?>
尝试了所有类型的组合,但没有任何错误。我想输出名称值
答案 0 :(得分:0)
您无法将print_r()
(或var_dump()
)的输出解析回PHP中的数组。所以(array)$someffdd
会失败,你将循环一个字符串(即$value
第一次是'A',然后是'r',然后是另一个'r',然后'a'和等等,直到它到达最后')')。
如果您无法将$someffdd
的来源更改为PHP可以使用json_encode()
,serialize()
或var_export()
解析的内容,您可以使用正则表达式来匹配{ {1}}字符串的一部分,或使用一些name
魔法:
strpos()/substr()
答案 1 :(得分:0)
不确定此数组的来源,但是当数组具有正确的字符串值时,只需调用键值parent / child即可正常工作: *您的阵列当前状态未正确配置。
$someffdd = Array (
"file" => Array (
"name" => "2Pcs-font-b-Mini-b-font-font-b-Couple-b-font-Lover-Animal-DIY-Resin-Fairy-32-185x215.jpg",
"type" => "application/octet-stream",
"tmp_name" => "/tmp/phpwhglrk",
"error" => 0,
"size" => 8713
)
);
//with proper array getting name is simple:
var_dump($someffdd["file"]["name"]);