如何从数组中删除空实体

时间:2011-06-22 21:13:16

标签: php

我有一个函数,它返回数组。但是我形成这个数组的方式是"爆炸"字符串。当我这样做时,我得到一个额外的空字符串。

所以现在我的问题是我不想返回空数组实体。

我的功能代码如下所示:

public function purge_file($keys)
{
    if(empty($keys))
        throw new C7_Exception('Missing/Bad arguments');                
    $lib_tools_storage = new C7_Lib_Tools_Storage();
    $file_ids = explode(";",$keys);
    foreach($file_ids as $key)
    {       
        //echo "this is file_id = $key  ";
        if(!empty($key))
            $lib_tools_storage->purge_file($key);       
    }

    return array('result_code' => 0,
                    'data' => array('keys' => $file_ids)
                    );
}

3 个答案:

答案 0 :(得分:2)

你可以在传递爆炸之前修剪外部分号:

$keys = '1;2;3;4;';
$file_ids = explode(";", trim($keys, ';'));

print_r($file_ids);

/* output
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)       
*/

答案 1 :(得分:1)

public function purge_file($keys)
{
    if(empty($keys))
        throw new C7_Exception('Missing/Bad arguments');                
    $lib_tools_storage = new C7_Lib_Tools_Storage();
    $file_ids = explode(";",$keys);
    foreach($file_ids as $key)
    {       
        //echo "this is file_id = $key  ";
        if(!empty($key))
            $lib_tools_storage->purge_file($key);       
    }

    foreach($file_ids as $key)
    {
        if (!empty($key))
        {
            $keys_new[] = $key;
        }
    }
    return array('result_code' => 0,
                    'data' => array('keys' => $keys_new)
                    );
}

答案 2 :(得分:0)

使用此功能array_filter(explode(",", $params['emails']));