Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 取消设置多个数组_Php_Arrays_Unset - Fatal编程技术网

Php 取消设置多个数组

Php 取消设置多个数组,php,arrays,unset,Php,Arrays,Unset,我需要代码方面的帮助。要从下面的数组中取消设置xfer数组,请执行以下操作: if($_SESSION["s"]["user"]["typ"] == 'admin') { $form["tabs"]['dns_soa'] = array ( 'title' => "DNS Zone", 'width' => 100, 'template' => "templates/dns_soa_edit.ht

我需要代码方面的帮助。要从下面的数组中取消设置xfer数组,请执行以下操作:

    if($_SESSION["s"]["user"]["typ"] == 'admin') {
    $form["tabs"]['dns_soa'] = array (
        'title'     => "DNS Zone",
        'width'     => 100,
        'template'  => "templates/dns_soa_edit.htm",
        'fields'    => array (
        ##################################
        # Begin Datatable fields
        ##################################

        'xfer' => array (
            'datatype'  => 'VARCHAR',
            'formtype'  => 'TEXT',
            'default'   => '',
            'value'     => '',
            'width'     => '30',
            'maxlength' => '255'
        ),

        'update_acl' => array (
            'datatype'  => 'VARCHAR',
            'formtype'  => 'TEXT',
            'default'   => '',
            'value'     => '',
            'width'     => '30',
            'maxlength' => '255'
        ),

        'active' => array (
            'datatype'  => 'VARCHAR',
            'formtype'  => 'CHECKBOX',
            'default'   => 'Y',
            'value'     => array(0 => 'N',1 => 'Y')
        ),
        ##################################
        # ENDE Datatable fields
        ##################################
        )
    );
    }


我只是:



为了解决这三个问题,我做了这个。更新-我在“字段”中有很多数组,但我只提供了3个:

unset($form["tabs"]['dns_soa']['fields']['xfer']);
unset($form["tabs"]['dns_soa']['fields']['update_acl']);
unset($form["tabs"]['dns_soa']['fields']['active']);


我是否可以不用编码就取消设置许多数组
unset($form[“tabs”]['dns\u soa']['fields']这里的数组名)多次?提前谢谢


更新-抱歉,我应该提供更多信息。如何禁用三取二阵列?例如,只需禁用['xfer']和['active']?

如果要取消设置
字段中的所有子数组,可以使用:

unset($form["tabs"]['dns_soa']['fields']);
编辑:在这种情况下,您最好使用for或foreach。

您可以说:

// to unset the parent "fields" array, which includes xfer, update_acl and active
unset($form["tabs"]['dns_soa']['fields']);

更新:

要仅取消设置键的特定子集,而不在代码中重复多次
unset
,我将执行一个循环:

foreach (array('xfer', 'active') as $field) {
  unset($form["tabs"]['dns_soa']['fields'][$field]);
}

如果您计划经常使用它,您可以创建一个函数来帮助速记:

<?php
function unset_array($keys, &$arr) {
    foreach($keys as $key) {
        unset($arr[$key]);
    }
}

unset_array(array('xfer', 'active'), $arr['tabs']['dns_soa']);
?>


抱歉,我应该提供更多信息。如何禁用三取二阵列?例如,只需禁用['xfer']和['active']?aahh foreach。我已经在班上学过了。非常感谢先生/女士。你节省了时间:)对不起,我应该提供更多的信息。如何禁用三取二阵列?例如,只需禁用['xfer']和['active']?嘿,谢谢,我会检查一下。谢谢你试着帮助我:)
foreach (array('xfer', 'active') as $field) {
  unset($form["tabs"]['dns_soa']['fields'][$field]);
}
<?php
function unset_array($keys, &$arr) {
    foreach($keys as $key) {
        unset($arr[$key]);
    }
}

unset_array(array('xfer', 'active'), $arr['tabs']['dns_soa']);
?>