11

コードに次のような行があります。

list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);

最後の 3 つのパラメーターは、存在する場合と存在しない場合があります。配列が予想よりも小さい場合、最後のパラメーターを自動的に無視する list に似た関数はありますか?

4

3 に答える 3

45
list($user_id, $name, $limit, $remaining, $reset)
    = array_pad(explode('|', $user), 5, null);
于 2013-03-12T15:36:54.083 に答える
16

SDC のソリューションが「ハッキー」に感じられることを懸念している場合。次に、いくつかのデフォルト値を設定して使用できます。

$user = '3|username';

$defaults = array(NULL, NULL, 10, 5, FALSE);
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user) + $defaults;

var_dump($user_id, $name, $limit, $remaining, $reset);
于 2013-03-12T15:42:00.227 に答える
5

文字列の最後に予備のパイプを追加するだけです。

list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');

問題が解決しました。

注:任意のパイプ区切りデータをロードする場合は、str_getcsv()ではなく関数を使用することをお勧めしますexplode()

于 2013-03-12T15:33:24.073 に答える