用php输出多数组值
我试图用PHP从一个多数组中输出值,但我无法理解如何从每个条目中检索特定的值 数组-用php输出多数组值,php,arrays,foreach,output,sub-array,Php,Arrays,Foreach,Output,Sub Array,我试图用PHP从一个多数组中输出值,但我无法理解如何从每个条目中检索特定的值 数组- Array ( [images] => Array ( [0] => Array ( [image] => sample1.jpg ) [1] => Array (
Array
(
[images] => Array
(
[0] => Array
(
[image] => sample1.jpg
)
[1] => Array
(
[image] => sample2.jpg
)
)
)
代码-if ($query) {
foreach ( $query as $outer_array ) {
foreach ( $outer_array as $inner_array ) {
$html .= '<img src="' . $inner_array[image] . '" alt="" />';
}
}
}
if($query){
foreach($queryas$outer\u数组){
foreach($外部数组作为$内部数组){
$html.='';
}
}
}
电流输出-<img src="" alt="" />
<img src="" alt="" />
这给了我一个奇怪的结果。尝试了十几种不同的方法,我想我对多阵列的工作方式还不够精通
编辑:采用另一种方法。谢谢你的帮助 首先在图像周围加引号:
$inner_array['image']
首先在图像周围加引号:
$inner_array['image']
如果您的结构与示例中类似,则可以通过直接循环$query['images']来保存其中一个循环:
if (!empty($query['images'])) {
foreach((array) $query['images'] as $image) {
$html .= '<img src="' . $image['image'] . '" alt="" />';
}
}
if(!empty($query['images'])){
foreach((数组)$query['images']作为$image){
$html.='';
}
}
如果您的结构与示例中类似,您可以通过直接在$query['images'上循环来保存其中一个循环:
if (!empty($query['images'])) {
foreach((array) $query['images'] as $image) {
$html .= '<img src="' . $image['image'] . '" alt="" />';
}
}
if(!empty($query['images'])){
foreach((数组)$query['images']作为$image){
$html.='';
}
}
如果$query表示最外层的数组,则只需更改
foreach ( $query as $outer_array )
到
所以它应该看起来像:
if (isset($query['images']) && is_array($query['images'])) {
foreach ( $query['images'] as $inner_array ) {
$html .= '<img src="' . $inner_array['image'] . '" alt="" />';
}
}
if(isset($query['images'])和&is_数组($query['images'])){
foreach($query['images']作为$internal_数组){
$html.='';
}
}
如果$query表示最外层的数组,则只需更改
foreach ( $query as $outer_array )
到
所以它应该看起来像:
if (isset($query['images']) && is_array($query['images'])) {
foreach ( $query['images'] as $inner_array ) {
$html .= '<img src="' . $inner_array['image'] . '" alt="" />';
}
}
if(isset($query['images'])和&is_数组($query['images'])){
foreach($query['images']作为$internal_数组){
$html.='';
}
}
执行var_dump($html),您得到了什么?@mpm,我得到了“string(22)”和“string(43)”,我假设这是对图像的引用。我尝试了您的示例,它对我有效,您在某处执行此操作后是否真的回显了$html变量?是的,输出变成了两个空的图像元素。这很奇怪,因为它在我的本地主机上非常适合我。。。您说过使用$internal_array[0]['image']
有效吗?如果在所有循环之前添加一个变量$i=0
,然后使用$internal\u array[$i]['image']]
在引用它之后放置$i++
?进行变量转储($html),你得到了什么?@mpm,我得到了“string(22)”和“string(43)”,我假设这是对图像的引用。我已经尝试了你的示例,它对我很有用,在某处执行此操作后,您是否真的回显了$html变量?是的,输出变成了两个空图像元素。这很奇怪,因为它在我的本地主机上非常适合我。。。您说过使用$internal_array[0]['image']
有效吗?如果您在所有循环之前添加一个变量$i=0
,然后使用$internal\u array[$i]['image']]
在引用它之后放置$i++
,会怎么样?我喜欢这个想法,尽管出于某种原因,循环根本不使用此设置运行。打印($query)的输出是什么代码>?与上面提到的数组相同。那么这应该可以工作。可能尝试使用print\r
或var\u dump
一步一步地调试数据流,看看它是否失败了。我喜欢这个想法,尽管出于某种原因,这个设置根本不会运行循环。print\r($query)的输出是什么代码>?与上面提到的数组相同。那么这应该可以工作。可能尝试使用print\r
或var\u dump
一步一步地调试数据流,看看它是否失败。谢谢,但没有帮助。我认为这是引用值的良好实践?当然是。否则,php将图像解释为常量,只有在查找失败后,它才会返回到“image”。除非使用数字作为键,否则应始终使用引号。启用错误显示,并将错误报告级别设置为E_ALL for development。这样PHP解释器就会为您指出这些问题。谢谢你的澄清!这不是一个很好的练习,这是的方法,否则你最终会使用未定义的常量
注意事项,但是没有帮助。我认为这是引用值的良好实践?当然是。否则,php将图像解释为常量,只有在查找失败后,它才会返回到“image”。除非使用数字作为键,否则应始终使用引号。启用错误显示,并将错误报告级别设置为E_ALL for development。这样PHP解释器就会为您指出这些问题。谢谢你的澄清!这不是一个好的做法,这是的方法,否则您将使用未定义常量
注意事项