2017-09-27 11 views
0

配列に空でない配列がいくつか含まれています。私はそれぞれの空でない配列を取得し、データを印刷する必要があります。例:配列2はimportTroubles-> troubleMessageという変数を持っています。どうすればそれを印刷できますか?この方法で試みて配列から空でない配列を取り出す方法

Array 
(
[0] => stdClass Object 
    (
    ) 

[1] => stdClass Object 
    (
    ) 

[2] => stdClass Object 
    (
     [return] => stdClass Object 
      (
       [failureMessage] => 
       [importTroubles] => stdClass Object 
        (
         [kind] => ParseError 
         [rowNumber] => 1 
         [troubleMessage] => Field "number1" has invalid value: "+16046799329". Invalid phone number //need to print this.. 
        ) 

       [keyFields] => number1 
       [uploadDuplicatesCount] => 0 
       [uploadErrorsCount] => 1 
       [warningsCount] => stdClass Object 
        (
        ) 

       [callNowQueued] => 0 
       [crmRecordsInserted] => 0 
       [crmRecordsUpdated] => 2 
       [listName] => new camp from CRM1-TargetList-CRM 
       [listRecordsDeleted] => 0 
       [listRecordsInserted] => 2 
      ) 

    ) 

[3] => stdClass Object 
    (
    ) 

[4] => stdClass Object 
    (
    ) 

イム:

foreach($result as $object) { 
foreach ($object as $items) { 

    if($items !== '') 
    { 
     foreach ($items as $item) { 
      echo "ERROR".$item->troubleMessage; 
     } 
    } 

} 
} 

あなたの努力

+0

'$のresult'は何ですか使うだろうか? –

+0

if(!empty($ items))if(if empty($ items)) – BSB

+0

実際にこの結果をajaxからフェッチするので、エラーは発生しません。 –

答えて

0

に役立ちます願っています。あなたはその項目を直接参照することができます。

foreach ($your_array as $object) { 
    if (isset($object->return->importTroubles->troubleMessage)) { 
     echo $object->return->importTroubles->troubleMessage; 
    } 
} 

特定のネストされたオブジェクト変数が設定されているかどうかをチェックすると、空のオブジェクトはすべて無視されます。

+0

ありがとうBro私の管理できる小さな警告が働いていますありがとうありがとう:) –

+0

あなたは大歓迎です。 –

1

のおかげでは、PHPの関数の使用を空にし()

として、あなたの場合は条件を変更しますコード:

foreach($result as $object) { 
foreach ($object as $items) { 
    if(!empty($items)) 
    { 
     foreach ($items as $item) { 
      if(isset($item->troubleMessage)) 
      { 
      echo "ERROR".$item->troubleMessage; 
      } 
     } 
    } 
} 
} 

$itemsに値がある場合にだけエコーされます。

+0

(echo "ERROR"。$ item-> troubleMessage;) –

+0

$ itemsの条件が1つ以上あれば使用できます。それに応じて編集された答え。今すぐチェック – BSB

+0

同じエラーBRO :( –

0
if(!empty($items))または if($items)または if($items[0])にご if($items !== '')を変更

それはあなたがそれだけ内にネストされた単一の特定のアイテムを探している場合は、各オブジェクトを反復処理する必要はありません

+0

非オブジェクトのプロパティを取得しようとしています(エコー "ERROR"。$ item->トラブルのメッセージ;) –

0

あなたはCollection

use Illuminate\Support\Collection; 

$collection = new Collection($result); 

$items = $collection->filter(function($object) { 

    return isset($object->return->importTroubles->troubleMessage); 

})->map(function($object) { 

    return $object->return->importTroubles->troubleMessage; 

}); 
関連する問題