Php,从数组中删除密钥
我想从数组中删除一个项。我可以这样写:Php,从数组中删除密钥,php,arrays,Php,Arrays,我想从数组中删除一个项。我可以这样写: $item = array( 'id' => 1 'name' => 'name' ); $item2 = $item; unset($item2['id']); $names[] = $item2; 但最后3行有点“笨重”,秀恩优雅。不创建$项目2就可以解决这个问题吗?比如: $item = array( 'id' => 1 'name' => 'name' ); $names[] = arr
$item = array(
'id' => 1
'name' => 'name'
);
$item2 = $item;
unset($item2['id']);
$names[] = $item2;
但最后3行有点“笨重”,秀恩优雅。不创建$项目2
就可以解决这个问题吗?比如:
$item = array(
'id' => 1
'name' => 'name'
);
$names[] = array_ignore_index('id', $item);
从您的代码中,我可以看到您正在尝试从项数组中获取名称[]。针对此特定场景的一个可能的简单解决方案: 例如,如果您有:
$items = array(
array(
//this is your item 1
'id' => 1,
'name' => 'name1'
),
array(
//this is item 2
'id' => 2,
'name' => 'name2'
)
);
您希望检索名称数组中的名称
您只需执行以下操作:
$names = array_column($items, 'name');
它将返回:
Array
(
[0] => "name1"
[1] => "name2"
)
请注意,此解决方案最适合此特定场景,它可能不适合您当前的场景,具体取决于。从您的代码中,我可以看出您正在尝试从项目数组中获取名称[]。针对此特定场景的一个可能的简单解决方案:
function array_ignore_index($id,$item){ ///function
unset($item[$id]);
return $item;
}
$a=array('id'=>1,
'name'=>'name');
$b=array_ignore_index('name',$a);
echo $b['name']; //create error id is not present
例如,如果您有:
$items = array(
array(
//this is your item 1
'id' => 1,
'name' => 'name1'
),
array(
//this is item 2
'id' => 2,
'name' => 'name2'
)
);
您希望检索名称数组中的名称
您只需执行以下操作:
$names = array_column($items, 'name');
它将返回:
Array
(
[0] => "name1"
[1] => "name2"
)
请注意,此解决方案最适合此特定场景,它可能不适合您当前的场景,具体取决于
function array_ignore_index($id,$item){ ///function
unset($item[$id]);
return $item;
}
$a=array('id'=>1,
'name'=>'name');
$b=array_ignore_index('name',$a);
echo $b['name']; //create error id is not present
以下是所需操作的代码
以下是所需操作的代码。最短的现成解决方案是创建阵列键的差异:
$names[] = array_diff_key($item, array_flip(['id']));
请参阅。最短的开箱即用解决方案是创建阵列键的差异:
$names[] = array_diff_key($item, array_flip(['id']));
请参阅。您可以使用
代码是
unset($item['id']);
测试它
print_r($item);
你可以用
代码是
unset($item['id']);
测试它
print_r($item);
您可以取消设置($item['id']);取消设置后,您可以使用array_值($array)重新编制索引。@deceze:是的,“在犯罪或做错事或可耻的事情时”…?)您可以取消设置($item['id']);取消设置后,您可以使用array_值($array)重新编制索引。@deceze:是的,“在犯罪或做错事或可耻的事情时”…?)