2016-10-24 55 views
-1

我想在PHP數組 $slider獲得列是這樣的:PHP:在陣列選擇列未定義指數誤差

 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! 此錯誤存在於服務器中,但未存在於本地主機中!

foreach ($slider as $slide) 
    { 

     $s = $slide['image']; 

     ?> 


     <div> 
      <img u="image" src2="<?php echo $url . "/$s" ?> " /> 
     </div> 

     <?php 

    } 

    ?> 

未定義指數:圖像中的這一行:$ S = $幻燈片[ '圖像'];

+0

''???這是行不通的;刪除'2','u ='應該代表什麼? –

+0

@NikhilVaghela未定義偏移:6 in - > foreach($ slider [6] as $ slide) – Saltern

+0

@ Fred-ii-!語法無誤! – Saltern

回答

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

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 
} 
1

你得到的錯誤是非常正常的,由於你建立$slider的方式!

當你foreach ($slider as $slide)你連續$slide其交替包含imagetitle1:換句話說兩名成員的一個不包含你正在尋找的image指數。

其實,這裏是你應該如何建立你的數組:

array(6) { 
    [0]=> 
    array(2) { 
    ["image"]=> 
    string(32) "themes/public/slideshow/ads1.jpg" 
    ["title1"]=> 
    string(1) "." 
    } 
    [1]=> 
    array(2) { 
    ["image"]=> 
    string(32) "themes/public/slideshow/ads2.jpg" 
    ["title1"]=> 
    string(1) "." 
    } 
    [2]=> 
    array(2) { 
    ["image"]=> 
    string(32) "themes/public/slideshow/ads3.jpg" 
    ["title1"]=> 
    string(1) "." 
    } 
} 

然後如你預期可能工作...

+0

對不起,我不在乎!謝謝 – Saltern