我有一个格式如下的数组:
Array
(
[0] => Array
(
[id] => 1
[LASTNAME] => Name
[FIRSTNAME] => Name
)
[1] => Array
(
[id] => 2
[LASTNAME] => Name
[FIRSTNAME] => Name
)
等我希望从数组的每个部分中删除姓氏和其他项目。
我尝试过以下代码,但无济于事。
foreach($s as $key => $object) {
foreach($object as $key=>$value) {
if ($key == "LASTNAME") {
unset( $s['LASTNAME'] );
}
}
}
关于我做错的任何想法?提前谢谢。
答案 0 :(得分:1)
试试这个:
foreach ($s as &$object) {
unset($object['LASTNAME']);
}
你的问题是你在副本上运行,&
会给你参考,同样如我的例子所示,你不必迭代数组来检查里面是否有特定的密钥,只需将其删除 - unset
如果不存在则不会出现任何错误。
即使在您的示例中,您尝试从'LASTNAME'
而不是其子项中移除$s
,但无论如何,只需尝试我的答案,它应该适合您;)
答案 1 :(得分:0)
你从错误的阵列中解脱出来。
存储每个循环的当前密钥将有助于:
foreach($s as $key1 => $object) {
foreach($object as $key2=>$value) {
if ($key2 == "LASTNAME") {
unset( $s[$key1][$key2] );
}
}
}
答案 2 :(得分:0)
<?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>';
?>