我有一个数组,它有大约12个潜在的键/值对.这是基于_POST/_GET
键不是0-n中的数字,我需要在适用的地方保留键值.我的问题是我知道有时会传递一个键,其值为null,空或等于''.如果是这种情况我想在处理我的数组之前修剪这些键.由于在没有任何东西的情况下跑下去会打破我的剧本.
不久之前,我要么做了或者发现了这个功能(我不记得它在我的武器库中已经存在了一段时间,不管怎么说).
function remove_array_empty_values($array, $remove_null_number = true)
{
$new_array = array();
$null_exceptions = array();
foreach($array as $key => $value)
{
$value = trim($value);
if($remove_null_number)
{
$null_exceptions[] = '0';
}
if(!in_array($value, $null_exceptions) && $value != "")
{
$new_array[] = $value;
}
}
return $new_array;
}
Run Code Online (Sandbox Code Playgroud)
我喜欢做的与此非常相似,但这适用于可以具有nn键值的数组,并且我不依赖于键以及确定什么时间和地点的值.由于上面将基本上删除所有内容然后只是重建数组.我被困在哪里试图弄清楚如何模仿上面的功能,但我保留了我需要的钥匙.
Ale*_*s G 20
如果我理解你所追求的是什么,你可以使用array_filter()或者你可以这样做:
foreach($myarray as $key=>$value)
{
if(is_null($value) || $value == '')
unset($myarray[$key]);
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*lez 18
如果你想快速删除NULL,FALSE和Empty Strings(""),但保留0(零)的值,你可以使用标准的php函数strlen作为回调函数:
// removes all NULL, FALSE and Empty Strings but leaves 0 (zero) values
$result = array_filter( $array, 'strlen' );
Run Code Online (Sandbox Code Playgroud)
资料来源:http://php.net/manual/en/function.array-filter.php#111091
array_filter是一个内置功能,可以完全满足您的需求。最多,您将需要提供自己的回调函数,以决定保留哪些值以及删除哪些值。按键将根据功能描述自动保存。
例如:
// This callback retains values equal to integer 0 or the string "0".
// If you also wanted to remove those, you would not even need a callback
// because that is the default behavior.
function filter_callback($val) {
$val = trim($val);
return $val != '';
}
$filtered = array_filter($original, 'filter_callback');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32049 次 |
| 最近记录: |