处理可能包含或不包含特定偏移的数组

时间:2012-12-19 16:23:37

标签: php arrays

我有以下功能:

public function set_partial($array)
{
    if (is_array($array)) {
        foreach ($array as $each) {
            self::$_partials[$each[0]] = array('view' => $each[1], 'data' => $each[2]);
        }
    }
}

在self :: $ _ partials中,不需要'data'。那么如何在允许数据为空的情况下保持代码简单呢?现在,如果没有提供数据,那么我会得到偏移误差。

2 个答案:

答案 0 :(得分:1)

您可以查看each[2]是否已设置。如果是,则设置变量,否则使其为null:

<?php
public function set_partial($array){
    if(is_array($array)){
        foreach ($array as $each) {
            self::$_partials[$each[0]] = array('view' => $each[1], 'data' => (isset($each[2])?$each[2]:NULL));
        }
    }
}?>

答案 1 :(得分:0)

如果您想避免偏移错误,可以执行以下操作:

public function set_partial($array)
{
    if (is_array($array)) {
        foreach ($array as $each) {
            $view = !empty($each[1]) ? $each[1] : ''; // replace '' with whatever default value you want to use
            $data = !empty($each[2]) ? $each[2] : '';
            self::$_partials[$each[0]] = array('view' => $view, 'data' => $data);
        }
    }
}