2017-02-08 12 views
1

私はPHPで問題があります。 したがって、私はデコードしてオブジェクトに入れるjsonデータを持っています 次に、パラメータを取得するためにforeach関数を使用します。 これを配列に入れて、ループの外側で呼び出すことができます。foreachloopの配列がnull値を返す

[{"mobile":"639179512744"},{"mobile":"639054971214"}, {"mobile":"639394297841"},{"mobile":"639296378818"},{"mobile":"639265161309"},{"mobile":null}] 

最後のレコードが含まれるべきではありません。私は結果を表示していたときに はしかし、それはこのような追加のヌル値を返します。私は5つのレコードしか持っていません。ここで

は私のコードです:

$data = file_get_contents("php://input"); 
$data = (object)json_decode($data); 
$model = $data->data; 
$model = json_encode($model); 
$model = json_decode($model); 
$model = (object)$model; 
foreach($model AS $row){ 
    $mobile = $row->mobile_number; 
    $array[] = array(
      'mobile'=>$mobile 
    ); 

} 

echo json_encode($array); 

そして、ここではデータです:?

{"action":"upload","data":[{"mobile_number":"639179512744","sentdt":"2017- 02-07 00:21:57","imsi":"","remarks":"ACTIVE"}, {"mobile_number":"639054971214","sentdt":"2017-02-07  00:21:57","imsi":"","remarks":"ACTIVE"}, {"mobile_number":"639394297841","sentdt":"2017-02-07  00:21:57","imsi":"","remarks":"Absent Subscriber - No International Mobile  Subscriber Identity"},{"mobile_number":"639296378818","sentdt":"2017-02-07 00:21:58","imsi":"","remarks":"Absent Subscriber - No International Mobile Subscriber Identity"},{"mobile_number":"639265161309","sentdt":"2017-02-07 00:21:58","imsi":"","remarks":"ACTIVE"},{}]} 

誰かが、私はあなたが追加のヌル値の おかげ

答えて

2

を取り除くためにしたいことができます次のようにヌルチェックを試みる可能性があります。

foreach($model as $row){ 
    if (!is_null($row->mobile_number)) { 
    $array[] = array(
     'mobile'=> $row->mobile_number; 
    ); 
    } 
} 

変数に$ row-> mobile_numberをキャッシュする必要はなく、配列にまっすぐに渡すだけです。

0

データのあなたの終わりは次のとおりです。

...ACTIVE"},{}]} 

データを復号し、配列値の最後には、mobile_numberのメンバ変数を持っているので、の値を取得することができ$row->mobile_number;を実行していない配列値の最後の意味空のオブジェクトであり、 null、PHPエラー報告はE_NOTICEエラーと同時に報告されます。

機能is_null()を使用してヌル値をフィルタリングできますが、同時にデータソースをチェックする必要があります。

1

これは問題を解決します。

foreach($model AS $row){ 
    $mobile = $row->mobile_number; 

    if(!empty($mobile) && isset($mobile)){  
    $array[] = array(
      'mobile'=>$mobile 
    ); 
    } 
} 
関連する問題