我想在PHP数组中获取列
$slider
就是这样:
array(6) {
[0]=>
array(1) {
["image"]=>
string(32) "themes/public/slideshow/ads1.jpg"
}
[1]=>
array(1) {
["title1"]=>
string(1) "."
}
[2]=>
array(1) {
["image"]=>
string(32) "themes/public/slideshow/ads2.jpg"
}
[3]=>
array(1) {
["title1"]=>
string(1) "."
}
[4]=>
array(1) {
["image"]=>
string(32) "themes/public/slideshow/ads3.jpg"
}
[5]=>
array(1) {
["title1"]=>
string(1) "."
}
}
当我想要获取此数组的列时,php有错误Undefined index
!
此错误存在于服务器中但不存在于localhost中!
foreach ($slider as $slide)
{
$s = $slide['image'];
?>
<div>
<img u="image" src2="<?php echo $url . "/$s" ?> " />
</div>
<?php
}
?>
未定义索引:此行中的图片:$ s = $ slide [&#39; image&#39;];
答案 0 :(得分:1)
由于您构建youruser ALL = (root) NOPASSWD: /some/path/your/command
的方式,您获得的错误非常正常!
执行$slider
后,您会得到连续的foreach ($slider as $slide)
,其中包含$slide
或 image
:换言之,其中一个成员< strong>不包含您正在寻找的title1
索引。
实际上,以下是构建数组的方法:
image
然后你可以像预期的那样工作......
答案 1 :(得分:1)
您应该使用isset
检查是否存在给定密钥
$slider = array (
array (
'image' => "themes/public/slideshow/ads1.jpg"
),
array (
'title1'=>"."
),
array (
'image'=>"themes/public/slideshow/ads2.jpg"
),
array (
'title1'=>"."
),
array (
'image'=>"themes/public/slideshow/ads3.jpg"
),
array (
'title1'=>"."
),
);
$url = 'http://example.com';
foreach ($slider as $slide)
{
if (isset($slide['image'])) {
$s = $slide['image'];
echo $url . '/' . $s . '<br />';
}
}
<强> DEMO 强>
答案 2 :(得分:0)
您的数组包含其他数组,每个数组都包含一行。但是所有这些子阵列的索引都不一样。有时为image
,有时为title1
。但是在您的代码中,您只能使用image
密钥$s = $slide['image'];
,即使它是title1
个...
因此在使用密钥之前检查密钥是否存在:
if (array_key_exists('image', $slide) {
$s = $slide['image'];
?>
<div>
<img u="image" src2="<?php echo $url . "/$s" ?> " />
</div>
<?php
}