从多维数组调用单个数据

时间:2019-06-05 21:40:24

标签: php

尝试通过使用类别确定输出来清理代码。不确定如何调用多维数组的单个条目。

数组:

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

2 个答案:

答案 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"; }