2011-06-22 12 views
1

私は配列を返す関数を持っています。しかし、私はこの配列を形成する方法は、文字列を "分解"することです。そして私がそれをするとき、余分な空の文字列が得られます。空のエンティティを配列から削除する方法

これで私の問題は、空の配列エンティティを返したくないということです。

My機能コードを以下に示します。

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) 
        ); 
} 

答えて

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
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) 
        ); 
} 
0

使用この機能array_filter(explode(",", $params['emails']));

関連する問題