2011-11-07 67 views
1

完全新手編程:)調用函數在數組中php

我擺弄着WordPress主題,碰到一個障礙。如果我把這個archive.php,

<?php 

if (is_category(array(9, 13, 24,)) { 
echo 'Light is GREEN'; 
    }else { 
echo 'Light is RED}'; 
?> 

這部分工作正常,當我去到9類,13,24,我得到「指示燈呈綠色」和「指示燈爲紅色」爲所有其他類別。

我現在已經

function am_get_cat_layout_ids() 
{ 

       global $am_option; 
       $catnumend = $am_option['main']['category_onecolumn_hidden']-1; 
       for($i=0; $i<$catnumend; $i++) 
       { 

        $value = $am_option['main']['category_onecolumn_'.$i].','; 


       } 

       return $value; 
} 

如果我回聲$值,而不是回報,我得到這個功能,我需要回聲「指示燈呈綠色」,它會從主題選項類別ID的類別ID的說2,15,7,34,很好,但如果我這樣做:

<?php 

if (is_category(array(am_get_cat_layout_ids())) { 
echo 'Light is GREEN'; 
    }else { 
echo 'Light is RED}'; 
?> 

它不工作。

什麼是可以做到使它工作?

謝謝 Srik

回答

0

試試這個:

function am_get_cat_layout_ids() 
{ 
    global $am_option; 
    $ret = array(); 
    $catnumend = $am_option['main']['category_onecolumn_hidden']-1; 

    for($i=0; $i<$catnumend; $i++) 
    { 
      $ret[] = $am_option['main']['category_onecolumn_'.$i]; 
    } 

    return $ret; 
} 

if (is_category(am_get_cat_layout_ids()) { 
    echo 'Light is GREEN'; 
}else { 
    echo 'Light is RED}'; 
} 
+0

謝謝:)它工作 – Srik

0

如果您am_get_cat_layout_ids()函數返回2, 15, 7, 34,那麼你應該做的:

if (is_category(explode(', ',trim(am_get_cat_layout_ids(),','))) { 
echo 'Light is GREEN'; 
    }else { 
echo 'Light is RED}'; 
+0

這絕對是做倒退。首先建立數組。 – lonesomeday

0

你所做的是一個包含一個字符串的數組,它有逗號分隔的數字。你想建立一個數組數組。

function am_get_cat_layout_ids() 
{ 
    global $am_option; 

    $ids = array(); // create array 
    $catnumend = $am_option['main']['category_onecolumn_hidden']-1; 

    for($i=0; $i<$catnumend; $i++) 
    { 
     $ids[] = $am_option['main']['category_onecolumn_'.$i]; // add value to array 
    } 
    return $ids; // return array 
} 

你原來的代碼是相同的:

if (is_category(array("9, 13, 24,")) { 

而這個新的代碼是相當於代碼的問題開始:

if (is_category(am_get_cat_layout_ids()) { 
+0

也感謝你的幫助,它的作品也太:) – Srik