尝试通过使用类别确定输出来清理代码。不确定如何调用多维数组的单个条目。
数组:
$category = [
'1' => [
'market' => 'Designing',
'icon' => 'palette'],
'2' => [
'market' => 'Developing',
'icon' => 'code'],
'3' => [
'market' => 'Editing',
'icon' => 'film'],
'4' => [
'market' => 'Marketing',
'icon' => 'chart-line'],
'5' => [
'market' => 'Translating',
'icon' => 'comments'],
'6' => [
'market' => 'Writing',
'icon' => 'marker']
];
从数据库中获取INT以尝试更改图标。 在此示例中,$ task ['category'] = 1,因此理想情况下,图标应更改为调色板。我在哪里错了?
<td class="text-center"><i class="fa fa-fw fa-<?php if ($task['category'] == $category()) { echo $category['icon']; } else { echo "code"; }?>"></i></td>
答案 0 :(得分:1)
您可以简单地使用db值,因为您希望将它用作数组的“索引”,例如:
echo $category[$task['category']]['icon'];
这将转换为您要显示的$category[1]['icon']
。因此,您可以跳过if。
完整示例:
$category = [
'1' => [
'market' => 'Designing',
'icon' => 'palette'],
'2' => [
'market' => 'Developing',
'icon' => 'code'],
'3' => [
'market' => 'Editing',
'icon' => 'film'],
'4' => [
'market' => 'Marketing',
'icon' => 'chart-line'],
'5' => [
'market' => 'Translating',
'icon' => 'comments'],
'6' => [
'market' => 'Writing',
'icon' => 'marker']
];
$task['category'] = 1;
if(isset($category[$task['category']]))
{
echo $category[$task['category']]['icon'];
}
else
{
echo 'not found';
}
输出为 palette 。
if-else
可以处理数据库中的值与您的任何数组键都不匹配的可能性,因此您有一个后备选项。如果不是这种情况,可以将其删除。
答案 1 :(得分:0)
我对此不太确定:
if ($task['category'] == $category()) { echo $category['icon']; } else { echo "code"; }
我认为$category
是一个变量,但是您试图将其作为函数运行(除非您将其用作variable function)。在这种情况下,该变量函数名称将与此数组冲突。如果您想从$category['1']['icon']
的值中获取$task['category']
的值,则可能需要这样调用它:
if ($task['category'] == someValue()) { echo $category[$task['category']]['icon']; } else { echo "code"; }
或者如果您有someValue()
函数返回值,您也可以使用它:
if ($task['category'] == someValue()) { echo $category[someValue()]]['icon']; } else { echo "code"; }