我有一个格式如下的数组
Array ( [0] => Array ( [id] => 13 [path] => Array ( [0] => Array ( [name] => Pistachios [path] => E_906.JPG ) ) ) [1] => Array ( [id] => 14 [path] => Array ( [0] => Array ( [name] => Almonds [path] => almond.jpg ) ) ) )
现在我需要的是我需要来自这个数组的id,name和path值它基本上有两个索引0和1我为此目的使用foreach循环
这是我的代码
<?php
foreach ($child3 as $key => $value){
echo $key;
}
?>
当回显键时它打印正确0,1但是当我尝试回显像
这样的值时<?php
foreach ($child3 as $key => $value){
echo $value;
}
?>
它给我一个错误数组到字符串转换任何推荐?
答案 0 :(得分:1)
在你的第二个foreach循环中,$value
是带有键path
的数组。 echo()
期望字符串作为参数,但因为$value
是一个数组,PHP会尝试将其转换为字符串并失败。
请尝试var_dump()
:
<?php
foreach ($child3 as $key => $value){
var_dump($value);
}
?>
你的结构是这样的:
Array (
[0] => Array ( <<- you tried to echo this array
[id] => 13
[path] => Array (
[0] => Array (
[name] => Pistachios
[path] => E_906.JPG
)
)
)
[1] => Array (
[id] => 14
[path] => Array (
[0] => Array (
[name] => Almonds
[path] => almond.jpg
)
)
)
)
如果你知道这个结构是固定的,试试这个:
$files = array();
foreach ($child3 as $child) {
$files[$child['path'][0]['name']] = $child['path'][0]['path'];
}
所以var_dump($files)
会给你这个:
Array (
'Pistachios' => 'E_906.JPG'
'Almonds' => 'almond.jpg'
)
答案 1 :(得分:1)
试试这个:
foreach ($child3 as $key => $value){
$id = $value['id'];
$name = $value['path'][0]['name'];
$path = $value['path'][0]['path'];
}
**这假设你的[path]
总是只包含一个数组元素。
答案 2 :(得分:0)
尝试使用
<?php
foreach ($child3 as $key => $value){
print_r($value);
}
?>
因为你有$ value作为一个数组,这就是你得到这个错误的原因。