1

小さな問題が発生しました。ベスト プラクティスに関するアドバイスを探していました。

外部 Web ページからデータを取得するスクリプトがあります。時々、このデータは完全ではありません。

たとえば、私は持っているかもしれません

$array=array('name'=>'Bob Smith','address'=>array('0'=>'My address'),'phone'=>'000000');

次に、このデータを別の配列に設定して、データベースに挿入します。例えば

$data=array('name'=>$array['name'],'address'=>$array['address']['0'],'phone'=>$array['phone']);

ただし、たとえばアドレスが見つからない場合、$array['address']['0'] が設定されていないため、それを使用して 2 番目の配列を作成すると、CodeIgniter でエラーが発生します。通常の手続き型コーディングではエラーは表示されませんが、CI でこのエラーが表示され、解決することがベスト プラクティスであると思います。

だから..これを解決する最善の方法は、条件を使用し、$array['address']['0'] が設定されているかどうかを確認してから $data 配列に追加することだと思います。あれは正しいですか?そうでない場合は、null がデータベースに挿入されます。

ネストの問題は、データベースからデータを取得して表示するときです。アドレスの行を分解して出力したいのですが、再度設定しないとcodeigniterでエラーが発生します。繰り返しますが、条件ステートメントを使用することで簡単に回避できます。

私の質問は、基本的に、設定されているかどうかに関係なく多数の変数が存在するデータの処理、挿入、および出力内にあります。一見、条件ステートメントのロードとロードが必要です。

実際にはこれは問題ではないと思いますが、コードはできるだけ短く簡潔にするのが好きです。私は何かを逃しましたか?

乾杯

4

1 に答える 1

6

返される可能性のあるすべてのキーを知っていますか? その場合

$allowed_keys = array('name', 'address');
$new_data = array();
foreach ($allowed_keys as $key) {
    $new_data[$key] = isset($data[$key]) ? $data[$key] : null;
}

foreach-loop で特定のキーにフォーマットを追加することもできます

if ($key == 'address') {
    $new_data[$key] = isset($data[$key]) ? implode(', ', $data[$key]) : null;
    continue;
}
于 2012-09-14T11:11:27.850 に答える