2013-02-12 55 views
0

這裏就是我有傳遞變量數組索引

foreach ($post_formats as $format) { 
    if ($options['show_post_formats'][$format] == 0) { 
     $format = 'post-format-' . $format; 
     array_push($hide, $format); 
    } 
} 

,它工作正常...但給了我一個未定義的索引:錯誤,當我調試,因爲它要$格式的值加引號。我將如何正確地做到這一點?

+0

我們需要看到更多的代碼 – Tchoupi 2013-02-12 00:05:52

+0

確定,但它的$格式是什麼樣的調試器有,因爲它的期待值加引號 – byronyasgur 2013-02-12 00:07:00

+0

作爲@MathieuImbert指出,更多的來源將是巨大的使用上有問題,但您可以使用[isset](http://php.net/manual/en/function.isset.php)檢查索引是否存在 – fiz 2013-02-12 00:08:00

回答

3

因爲您不確定索引會在那裏,您只需使用!empty()並檢查數組鍵是否存在。

<?php 
foreach ($post_formats as $format) { 
    if (!empty($format) && array_key_exists($format, $options['show_post_formats']) && $options['show_post_formats'][$format] == 0) { 
     $format = 'post-format-' . $format; 
     array_push($hide, $format); 
    } 
} 
?> 
+0

不知道我明白...我是否將整個foreach放到這裏? – byronyasgur 2013-02-12 00:11:59

+0

好吧,我做了,它的工作,並擺脫了錯誤 – byronyasgur 2013-02-12 00:16:15

+0

當我回答沒有foreach,反正'$ format'可能是一個空值或空白,從而導致問題。更新 – 2013-02-12 00:19:30