2011-11-07 57 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