2016-10-24 10 views
-1

I Array erhalten Spalte in PHP wollen $slider ist dies:php: select Spalte in der Matrix mit undefinierten Indexfehler

 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) "." 
    } 
} 

wenn ich Spalte dieses Arrays PHP bekommen hat Fehler Undefined index! Dieser Fehler ist im Server vorhanden, aber existiert nicht in localhost!

foreach ($slider as $slide) 
    { 

     $s = $slide['image']; 

     ?> 


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

     <?php 

    } 

    ?> 

Undefined index: Bild in dieser Zeile: $ s = $ Dia [ 'Bild'];

+0

'' ??? das wird nicht funktionieren; entferne die '2', und was soll' u = 'darstellen? –

+0

@NikhilVaghela Undefinierter Offset: 6 in -> foreach ($ slider [6] als $ slide) – Saltern

+0

@ Fred-ii-! Syntax ist korrekt! – Saltern

Antwort

1

sollten Sie isset verwenden zu überprüfen, ob bestimmte Taste

existiert
$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

Ihr Array enthält andere Arrays, jedes Array enthält eine einzelne Zeile. Aber die Indizes all dieser Sub-Arrays sind nicht gleich. Manchmal ist es image, manchmal ist es title1. aber in Ihrem Code, können Sie nur verwenden, um die image Taste, auf der Linie $s = $slide['image']; auch wenn es ein title1 ist ...

So prüfen Sie, ob der Schlüssel vorhanden ist, bevor Sie es:

if (array_key_exists('image', $slide) { 
    $s = $slide['image']; 
    ?> 
    <div> 
     <img u="image" src2="<?php echo $url . "/$s" ?> " /> 
    </div> 
    <?php 
} 
1

Der Fehler, den Sie bekommen ist ziemlich normal, aufgrund der Art, wie Sie $slider ist gebaut!

Wenn Sie foreach ($slider as $slide) tun bekommen Sie $slide sukzessive die alternativ imageodertitle1 sind enthalten: eine von zwei Mitgliedern mit anderen Worten enthalten keine der image Index Sie suchen.

In der Tat, hier ist, wie Sie Ihr Array aufbauen sollte:

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) "." 
    } 
} 

Dann können Sie arbeiten, wie Sie erwartet ...

+0

Es tut mir leid, es war mir egal! Vielen Dank – Saltern

Verwandte Themen