Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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_Array Unset - Fatal编程技术网

Php 从数组中删除项

Php 从数组中删除项,php,arrays,array-unset,Php,Arrays,Array Unset,我有一个数组,其格式如下: Array ( [0] => Array ( [id] => 1 [LASTNAME] => Name [FIRSTNAME] => Name ) [1] => Array ( [id] => 2 [LASTNAME] => Name

我有一个数组,其格式如下:

Array
(
    [0] => Array
        (
            [id] => 1
            [LASTNAME] => Name
            [FIRSTNAME] => Name
    )
    [1] => Array
        (
            [id] => 2
            [LASTNAME] => Name
            [FIRSTNAME] => Name
    )
等等。我希望从数组的每个部分删除lastname和其他项

我尝试了以下代码,但没有效果

foreach($s as $key => $object) {

    foreach($object as $key=>$value) {

            if ($key == "LASTNAME") {
                unset( $s['LASTNAME'] );
                }
            }
        }

你知道我做错了什么吗?提前感谢。

您从错误的阵列中不安

为每个循环存储当前键将有助于:

foreach($s as $key1 => $object) {
    foreach($object as $key2=>$value) {
        if ($key2 == "LASTNAME") {
            unset( $s[$key1][$key2] );
        }
    }
}
试试这个:

foreach ($s as &$object) {
    unset($object['LASTNAME']);
}
您的问题是,您正在对副本进行操作,
&
将为您提供引用,正如我的示例中所示,您不必迭代数组来检查其中是否有特定的键,只需将其删除-
取消设置
,如果它不存在,则不会出现任何错误


即使在您的示例中,您试图从
$s
中删除
'LASTNAME'
,而不是它的子项,但无论如何,请尝试我的答案,它应该适用于您;)



内部循环正在覆盖outter的
$key
变量。好吧!!这就解决了问题。谢天谢地,我在办公桌旁,没有开车。这么愚蠢可能会给我带来严重的伤害:-)谢谢。我很感激。
<?php 
$array = Array(
    0 => Array(
            'id' => 1,
            'LASTNAME' => 'Name',
            'FIRSTNAME' => 'Name'
    ),
    1 => Array(
            'id' => 2,
            'LASTNAME' => 'Name',
            'FIRSTNAME' => 'Name'
    )
);

foreach($array as $key=>$value){
    unset($array[$key]['LASTNAME']);
}

echo '<pre>',print_r($array),'</pre>';
?>