PHP:使用变量填充由键定义的数组的特定值

时间:2011-11-25 18:27:42

标签: php arrays variables syntax message

我正在尝试使用变量的键来填充数组的特定值。 该值包含语法的形式,键是它的标识符。

我不确定这是否是正确的方法,但这是我遇到麻烦的地方:

function create_mess($data){
    echo message_list($data);   
    }

function message_list($data){
    $messages = array(
        1000 => $data['user']." logged on!",
        2000 => $data['user']." comment on ".$data['user_rep']."s comment about!".$data['title'],
        2010 => "You just received a reply to".$data['title']."by ".$data['user'],
        3000 => $data['user'].": ".$data['title']."!"
    );

    return $messages[$data['mess_id']];
    }

这是我所拥有的精简版,以便更清楚。我知道create_mess函数现在不是很有用。

目前它总是填写所有变量。我想知道的是:

  • 是否可以只填写您通过函数传递的标识符键的变量?
  • 这是否可以使用数组?
  • 或者只有这些句子存储在数据库中?

2 个答案:

答案 0 :(得分:1)

    foreach($messages as $key => &$message)
        if($key != $data['mess_id'])
            unset($messages[$data['mess_id']];

这将在填写所有值(低效)后删除数组。如果要有条件地填充数组,则必须根据消息ID在创建要返回的数组时构建一些逻辑。例如:将当前消息数组视为“模板”,以构建将返回的辅助数组。

答案 1 :(得分:0)

如果我正确理解你,是的。您可以将参数声明为null:     function create_mess($ key1 = null,$ key2 = null){etc ...}

您可以将其作为数组传递,然后使用list:     function create_mess($ array){list($ key1,$ key2)= $ array; }

如果这不是您想要的,那么您必须更具体一点。